一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|JavaScript|易語言|

服務器之家 - 編程語言 - Java教程 - Java學習筆記之異常處理

Java學習筆記之異常處理

2021-06-02 14:21莫凡丶 Java教程

這篇文章主要為大家詳細介紹了Java學習筆記之異常處理,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了java異常處理的具體代碼,供大家參考,具體內容如下

一.異常的分類

1.由java虛擬機拋出的異常(error):程序無法處理的問題,用戶不用去進行處理(虛擬機錯誤丶內存溢出錯誤丶線程死鎖)

2.exception異常:程序本身可以進行處理的異常

1).非檢查異常(unchecked exception):編譯器不需要強制處理的異常(空指針異常丶數組下標越界異常丶算數異常丶類型轉換異常)

2).檢查異常(checked exception):編譯器需要強制處理的異常(ioexception丶sqlexception) 

二.異常處理的兩種方法

1.通過try丶catch和finally關鍵字在當前位置進行異常處理

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public static void main(string[] a){
 int sum = 0;
 while(true){
  try {  //以兩數相除除數不能為0進行舉例
   system.out.println("請依次輸入兩個數值進行除法操作:");
   scanner scanner = new scanner(system.in);
   int one =scanner.nextint();
   int two =scanner.nextint();
   sum = one/two;
   system.out.println("最終結果為:"+sum);
  } catch (exception e) {    //用catch將錯誤進行捕捉,這里可以使用多重catch,對于不同的錯誤進行捕捉,但最后的catch建議為exception。
   // todo auto-generated catch block //顯示錯誤堆棧信息
   e.printstacktrace();                          
  }finally{            
 
 system.out.print("無論有沒有錯誤我都會執行");          }
 }
 }
}

輸出:

Java學習筆記之異常處理

2.通過try丶catch丶finally丶throw和throws拋出異常給函數調用者進行處理

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public class try {
 public static void main(string[] a){
  try{
   function();  //在函數調用者處對異常進行處理
  }catch(exception e)
  {
   e.printstacktrace();
  }
 }
 static void function() throws exception{  //通過throws將異常進行拋出
  
  system.out.println("請輸入一個數值進行判斷:");
  scanner scanner = new scanner(system.in);
  int one =scanner.nextint();
  if(one<100)
  {
   throw new exception(); //若輸入的數值小于100則拋出異常
  }
 }
}

輸出:

Java學習筆記之異常處理

3.自定義異常進行處理

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
class myexception extends exception{  //自定義異常,通過super方法傳遞異常信息給父級
 public myexception(){
 super("這是我自定義的異常");
 }
}
 
public class try {
 public static void main(string[] a){
  try{
   function();
  }catch(myexception e)
  {
   e.printstacktrace();
  }
 }
 static void function() throws myexception{
  
  system.out.println("請輸入一個數值進行判斷:");
  scanner scanner = new scanner(system.in);
  int one =scanner.nextint();
  if(one<100)
  {
   throw new myexception(); //將自定義異常進行拋出  
  }
 }
}

輸出:

Java學習筆記之異常處理

三.異常鏈

有的時候我們會在處理一個異常的時候拋出一個新的異常,也就是異常的嵌套,但是最后我們得到的異常信息卻只有一個。

示例:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
public class try {
 public static void main(string[] a){
  try{
   function1();
  }catch(exception e)
  {
   e.printstacktrace();
  }
 }
 static void function1() throws exception{
  try{
   function2();
  }catch(exception e){
   throw new exception();
  }
 }
 static void function2() throws exception{
  try{
   function3();
  }catch(exception e){
   throw new exception();
  }
 }
 static void function3() throws exception{
   throw new exception();
 }
}

輸入結果:

Java學習筆記之異常處理

這樣的話顯示出的異常就只有一個了,那我們如果想讓這條異常鏈中的所有異常信息全部輸出該怎么辦呢?方法很簡單,我們在拋出異常的時候將異常對象也當作參數進行拋出就行了。

示例:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
public class try {
 public static void main(string[] a){
  try{
   function1();
  }catch(exception e)
  {
   e.printstacktrace();
  }
 }
 static void function1() throws exception{
  try{
   function2();
  }catch(exception e){
   throw new exception("異常2",e);
  }
 }
 static void function2() throws exception{
  try{
   function3();
  }catch(exception e){
   throw new exception("異常2",e);
  }
 }
 static void function3() throws exception{
   throw new exception("異常3");
 }
}

運行結果:

Java學習筆記之異常處理

到此,我們java中的異常便是描述完了。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:https://www.cnblogs.com/ygxdbmx/archive/2018/10/03/9736189.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久国产精品永久免费网站 | 日韩欧美一区二区三区免费看 | 免费我看视频在线观看 | 久久99热在线观看7 久久99精品涩AV毛片观看 | 91精品国产品国语在线不卡 | 国产一级视频在线观看 | 好男人资源免费播放 | 大胸孕妇孕交pregnantsex 大象视频污 | 亚洲视频在线一区二区 | 911亚洲精品国内自产 | 久久99r66热这里只有精品 | 国产久热香蕉在线观看 | 精品国偷自产在线 | www.精品视频 | 学校女性奴sm训练调教 | 99re这里只有精品视频 | 国产精品高清视亚洲一区二区 | 耽美调教高h | 日本天堂影院在线播放 | 俄罗斯妈妈k8影院在线观看 | 日韩视频免费一区二区三区 | 99久久免费视频 | 秋霞网毛片 | freexxxxxhd张柏芝 | 青草青草伊人精品视频 | 国产aⅴ一区二区三区 | xxxxxx性受| a天堂在线视频 | 国产精品成人自拍 | 亚洲精品国产精品麻豆99 | 国产亚洲精品美女2020久久 | 五月最新女厕所高跟嘘嘘 | 99九九精品免费视频观看 | 久久久精品日本一区二区三区 | 久久成人免费大片 | 久久九九久精品国产尤物 | 爆操| t66y地址一地址二地址三 | 国产成人精品免费 | 久久久精品免费视频 | 欧美一级欧美三级 |