中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

制作購物網(wǎng)站怎么做seo網(wǎng)站關(guān)鍵詞優(yōu)化

制作購物網(wǎng)站,怎么做seo網(wǎng)站關(guān)鍵詞優(yōu)化,網(wǎng)站制作旅行社,有域名了 怎么做網(wǎng)站目錄 1.異常的概念與體系結(jié)構(gòu) 1.1異常的體系結(jié)構(gòu) 1.2異常的舉例 1.3錯誤的舉例 2.異常的分類 2.1編譯時異常 2.2運行時異常 3.異常的處理 3.1異常的拋出throw 3.2try-catch捕獲并處理 3.3finally 3.4 異常聲明throws 4.自定義異常類 1.異常的概念與體系結(jié)構(gòu) 1.1異常的…

目錄

1.異常的概念與體系結(jié)構(gòu)

?1.1異常的體系結(jié)構(gòu)

1.2異常的舉例

1.3錯誤的舉例

?2.異常的分類

2.1編譯時異常

?2.2運行時異常

3.異常的處理

3.1異常的拋出throw

3.2try-catch捕獲并處理

3.3finally

3.4?異常聲明throws

4.自定義異常類


1.異常的概念與體系結(jié)構(gòu)

?1.1異常的體系結(jié)構(gòu)

異常種類繁多,為了對不同異常或者錯誤進行很好的分類管理, Java 內(nèi)部維護了一個異常的體系結(jié)構(gòu):

??從上圖中可以看到:

1. Throwable 是異常體系的頂層類,其派生出兩個重要的子類 , Error Exception
2. Error 指的是 Java 虛擬機無法解決的嚴重問題,比如: JVM 的內(nèi)部錯誤、資源耗盡等 ,典型代表: StackOverflflowError OutOfMemoryError ,一旦發(fā)生回力乏術(shù)。
3. Exception 異常產(chǎn)生后程序員可以通過代碼進行處理,使程序繼續(xù)執(zhí)行。比如:感冒、發(fā)燒。我們平時所說 的異常就是Exception 。

?

1.2異常的舉例

Java 中,將程序執(zhí)行過程中發(fā)生的不正常行為稱為異常
比如:
(1)算術(shù)異常
 public static void main(String[] args) {System.out.println(10/0);}

運行結(jié)果及分析:

補充:

?

?(2)數(shù)組越界異常

public static void main(String[] args) {int[] arr = {1, 2, 3,4,5};System.out.println(arr[10]);}
// 執(zhí)行結(jié)果
Exception in thread "main" java . lang . ArrayIndexOutOfBoundsException : 100
(3)空指針異常
public static void main(String[] args) {int[] arr = null;System.out.println(arr.length);}
// 執(zhí)行結(jié)果
Exception in thread "main" java . lang . NullPointerException

1.3錯誤的舉例

StackOverflflowError

public class Text2 {public static void fun(){fun();}public static void main(String[] args) {fun();}
}

執(zhí)行結(jié)果:


?2.異常的分類

異??赡茉诰幾g時發(fā)生,也可能在程序運行時發(fā)生,根據(jù)發(fā)生的時機不同,可以將異常分為:

2.1編譯時異常

在程序編譯期間發(fā)生的異常,稱為編譯時異常,也稱為受檢查異常 (Checked Exception)
舉個經(jīng)典的例子:

理解:?

正確完整代碼:

public class Text3 {public static void main(String[] args) throws CloneNotSupportedException {Person p1 = new Person(18, "WH");Person p2= (Person) p1.clone();}
}
public class Person {int age;String nume;public Person(int age, String nume) {this.age = age;this.nume = nume;}@Overrideprotected Object clone() throws CloneNotSupportedException {return super.clone();}
}

?2.2運行時異常

在程序執(zhí)行期間發(fā)生的異常,稱為運行時異常,也稱為非受檢查異常 (Unchecked Exception)
RunTimeException 以及其子類對應(yīng)的異常,都稱為運行時異常
比如:
NullPointerException 、 ArrayIndexOutOfBoundsException、 ArithmeticException
在1.2異常的舉例中展示了相關(guān)代碼
注意:編譯時出現(xiàn)的語法性錯誤,不能稱之為異常。
例如將 System.out.println 拼寫錯了 , 寫成了 system.out.println. 此時編譯過程中就會出錯 , 這是 " 編譯期 " 出錯。
而運行時指的是程序已經(jīng)編譯通過得到 class 文件了 , 再由 JVM 執(zhí)行過程中出現(xiàn)的錯誤 .

?


3.異常的處理

在Java中,異常處理主要的5個關(guān)鍵字:try、catch、final、throw、throws。

異常的捕獲,也就是異常的具體處理方式,主要有兩種:異常聲明throws 以及 try-catch捕獲處理。

3.1異常的拋出throw

在編寫程序時,如果程序中出現(xiàn)錯誤,此時就需要將錯誤的信息告知給調(diào)用者
在Java中,可以借助throw關(guān)鍵字,拋出一個指定的異常對象,將錯誤信息告知給調(diào)用者
語法:
throw new XXXException ( " 異常產(chǎn)生的原因 " )
主動拋出指定異常

運行結(jié)果:

Exception in thread "main" java.lang.NullPointerException: hahaha

注意事項
(1) throw 必須寫在方法體內(nèi)部
(2)拋出的對象必須是 Exception 或者 Exception 的子類對象
(3) 如果拋出的是 RunTimeException 或者 RunTimeException 的子類,則可以不用處? ? ? ? ? ? ? ? ?理,?直接交給JVM來處理
(4)如果拋出的是編譯時異常,用戶必須處理,否則無法通過編譯
(5)異常一旦拋出,其后的代碼就不會執(zhí)行

對于(3)(5)舉例:

3.2try-catch捕獲并處理

語法形式:

如果真正要對異常進行 處理,就需要try-catch 。
注意事項
(1)?try塊內(nèi)拋出異常位置之后的代碼將不會被執(zhí)行
public static void main(String[] args) {try{System.out.println(10/0);System.out.println(100);}catch (ArithmeticException e){e.printStackTrace();}}

運行結(jié)果:

java.lang.ArithmeticException: / by zero

(2)如果拋出異常類型與catch時異常類型不匹配,即異常不會被成功捕獲,也就不會被處理,繼續(xù)往外拋,直到 JVM收到后中斷程序----異常是按照類型來捕獲的

public static void main(String[] args) {try {System.out.println(10/0);} catch (NullPointerException e) {System.out.println(10);}}

運行結(jié)果:

Exception in thread "main" java.lang.ArithmeticException: / by zero

沒有打印10,而是報java.lang.ArithmeticException: / by zero,
因為:異常沒有被成功捕獲,也就不會被處理繼續(xù)往外拋,直到 JVM收到后中斷程序
(3)try中可能會拋出多個不同的異常對象,則必須用多個catch來捕獲----即多種異常,多次捕獲

?

(4)如果異常之間具有父子關(guān)系,一定是子類異常在前catch,父類異常在后catch,否則語法錯誤

(5)可以通過一個catch捕獲所有的異常,即多個異常,一次捕獲(不推薦)

Exception 類是所有異常類的父類. 因此可以用這個類型表示捕捉所有異常

3.3finally

在寫程序時, 有些特定的代碼,不論程序是否發(fā)生異常,都需要執(zhí)行,比如程序中打開的資源 :網(wǎng)絡(luò)連接、數(shù)據(jù)庫 連接、IO 流等, 在程序正常或者異常退出時,必須要對資源進進行回收 。另外,因為 異常會引發(fā)程序的跳轉(zhuǎn),可能 導致有些語句執(zhí)行不到 finally 就是用來解決這個問題的。
小結(jié): finally 中的代碼一定會執(zhí)行的,一般在 finally 中進行一些資源清理的掃尾工作
注意:
finally 執(zhí)行的時機是在方法返回之前 (try 或者 catch 中如果有 return 會在這個 return 之前執(zhí)行 fifinally). 但是如果 finally 中也存在 return 語句 , 那么就會執(zhí)行 fifinally 中的 return, 從而不會執(zhí)行到 try 中原有的 return.
一般我們不建議在 finally 中寫 return ( 被編譯器當做一個警告 )

?

3.4?異常聲明throws

處在方法聲明時參數(shù)列表之后,當方法中拋出編譯時異常,用戶不想處理該異常,此時就可以借助 throws 將異常拋 給方法的調(diào)用者來處理。即當前方法不處理異常,提醒方法的調(diào)用者處理異常。

?

語法格式:

修飾符 返回值類型 方法名 ( 參數(shù)列表 ) throws 異常類型 1 ,異常類型 2 ...{
}

??注意:

如果方法是main方法調(diào)用者仍然可以不處理異常,借助throws將異常拋 給JVM來處理。

注意事項
1. throws 必須跟在方法的參數(shù)列表之后
2. 聲明的異常必須是 Exception 或者 Exception 的子類
3. 方法內(nèi)部如果拋出了多個異常, throws 之后必須跟多個異常類型,之間用逗號隔開,如果拋出多個異常類型 具有父子關(guān)系,直接聲明父類即可。
4.我們在使用throws時,要明確聲明的異常是編譯時異常還是運行時異常。

比如:

(1)

(2)?

?

如果是?運行時異常調(diào)用者不處理異常也沒關(guān)系,JVM會處理。

如果是編譯時異常一定要處理異常

處理方式:(1)try-catch捕獲并處理

? ? ? ? ? ? ? ? ? (2)借助throws將異常拋 給JVM來處理。



4.自定義異常類

Java 中雖然已經(jīng)內(nèi)置了豐富的異常類 , 但是并不能完全表示實際開發(fā)中所遇到的一些異常,此時就需要維護符合我 們實際情況的異常結(jié)構(gòu).
如何自定義異常類?
例題:

定義Course類,Course包含private String cno,private String cname,private int credit,Course包括方法:public Course(),public Course。Define CreditException類擴展(繼承)?在RunTimeException中,CreditException包含以下方法:public CreditException()、public CreditException(String Message)。

如果課程的學分低于0.5或高于6,則課程的構(gòu)建方法將拋出CreditException,消息為“學分應(yīng)在0.5和6之間!”。

定義公共類TestCourse,創(chuàng)建一個Course對象,并使用try/catch塊來處理CreditException。

代碼:
import java.util.Scanner;public class LogIn {public static void main(String[] args) {Scanner scanner=new Scanner(System.in);System.out.println("請輸入cno");String cno=scanner.next();System.out.println("請輸入課程名字");String cname=scanner.next();System.out.println("請輸入學分");double credit=scanner.nextDouble();Course course=new Course(cno,cname,credit);try {if(!(course.getCredit()>=0.5&&course.getCredit()<=6)){throw new CreditException("課程的學分應(yīng)在0.5到6之間");}else{System.out.println("輸入成功學分為:"+course.getCredit());}} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}
}
class Course{private String cno;private String cname;private double credit;public Course(String cno, String cname, double credit) {this.cno = cno;this.cname = cname;this.credit = credit;}public Course() {}public String getCno() {return cno;}public void setCno(String cno) {this.cno = cno;}public String getCname() {return cname;}public void setCname(String cname) {this.cname = cname;}public double getCredit() {return credit;}public void setCredit(double credit) {this.credit = credit;}}
class CreditException extends RuntimeException{public CreditException(String message){super(message);}
}

注意事項

  • 自定義異常通常會繼承自 Exception 或者 RuntimeException
  • 繼承自 Exception 的異常默認是受查異常
  • 繼承自 RuntimeException 的異常默認是非受查異常

以上為我個人的小分享,如有問題,歡迎討論!!!?

都看到這了,不如關(guān)注一下,給個免費的贊?

?

http://www.risenshineclean.com/news/57017.html

相關(guān)文章:

  • dns設(shè)置 看國外網(wǎng)站百度應(yīng)用下載
  • 網(wǎng)站制作百度網(wǎng)盤網(wǎng)絡(luò)推廣比較經(jīng)典和常用的方法有
  • wordpress tdk鄭州seo排名扣費
  • 彩票自己開盤做網(wǎng)站多地優(yōu)化完善疫情防控措施
  • 哪些網(wǎng)站可以做招商廣告持啊傳媒企業(yè)推廣
  • wordpress更改路徑湖北網(wǎng)站seo設(shè)計
  • 中國新聞社是央企嗎成都seo
  • 做網(wǎng)站可以申請國家補助嗎西安網(wǎng)站制作建設(shè)
  • 哪些網(wǎng)站是react做的企業(yè)培訓師資格證報考2022
  • 山東泰安最新疫情深圳搜狗seo
  • 網(wǎng)站建設(shè)報名系統(tǒng)是真的嗎蘇州seo快速優(yōu)化
  • 杭州哪里做網(wǎng)站好如何快速推廣網(wǎng)上國網(wǎng)
  • 1.網(wǎng)站建設(shè)基本流程是什么關(guān)鍵詞排名優(yōu)化技巧
  • 網(wǎng)站專題頁面設(shè)計欣賞網(wǎng)絡(luò)營銷是指
  • 企業(yè)信用網(wǎng)站建設(shè)網(wǎng)絡(luò)運營培訓哪里有學校
  • 微企免費網(wǎng)站建設(shè)制作網(wǎng)站要花多少錢
  • 班級網(wǎng)站源代碼下載關(guān)鍵詞查網(wǎng)址
  • thinkphp開發(fā)企業(yè)網(wǎng)站廣州seo網(wǎng)站推廣優(yōu)化
  • 做網(wǎng)站容易找工作嗎互聯(lián)網(wǎng)推廣有哪些方式
  • 怎么建設(shè)企業(yè)網(wǎng)站網(wǎng)絡(luò)推廣營銷
  • 濟南集團網(wǎng)站建設(shè)公司河南推廣網(wǎng)站
  • 做網(wǎng)站有2個前提條件 一個是網(wǎng)站如何做百度免費推廣
  • 開發(fā)安卓app關(guān)鍵詞優(yōu)化的發(fā)展趨勢
  • wordpress移動友好度大揭秘搜索引擎優(yōu)化seo的英文全稱是
  • 網(wǎng)站建設(shè)是不是無形資產(chǎn)深圳債務(wù)優(yōu)化公司
  • 新聞發(fā)布網(wǎng)站如果做初學seo網(wǎng)站推廣需要怎么做
  • wordpress手機網(wǎng)站怎么做3天網(wǎng)站seo優(yōu)化成為超級品牌
  • 商丘做網(wǎng)站seoseo百度發(fā)包工具
  • 做網(wǎng)站最好的公司福州seo排名優(yōu)化
  • 望城區(qū)政府門戶網(wǎng)站建設(shè)局電商平臺推廣公司