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

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

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

服務器之家 - 編程語言 - Java教程 - java 異常的實例詳解

java 異常的實例詳解

2020-12-28 09:44u012324102 Java教程

這篇文章主要介紹了java 異常的實例詳解的相關資料,希望通過本文大家能徹底掌握java異常的使用方法,需要的朋友可以參考下

java 異常的實例詳解

1、異常的定義:程序在運行時出現不正常情況。

異常的劃分:

Error:嚴重的問題,對于error一般不編寫針對性的代碼對其進行處理。

Exception:非嚴重的問題,對于exception可以使用針對性的處理方式進行處理。

2、異常的處理:(固定格式)

?
1
2
3
4
5
6
7
8
9
10
11
try
 
{需要被檢測的代碼;}
 
catch(異常類 變量)
 
{處理異常的代碼(處理方式);}//這里應當是要有針對性的處理方式
 
finally
 
{一定會執行的語句;}//通常是關閉資源的代碼,因為資源必須得到釋放

對多異常的處理方式:

1、聲明異常時,建議聲明更為具體的異常,這樣處理起來就更加的具體。

2、對方聲明幾個異常,就對應及格catch塊,不要定義多余的catch塊,如果多個catch塊中的異常出現繼承關系,父類異常catch塊放在最下面。

*在進行catch處理時,catch中一定要定義具體的處理方式。

*catch是用于處理異常,如果沒有catch就代表異常沒有被處理過,如果該異常是檢測時異常,那么必須聲明。

Runtime異常:(即運行時異常)

是Exception中一個特殊的子類異常。

如果在函數內拋出該異常,函數上可以不用聲明,編譯一樣通過;如果在函數上聲明了該異常,調用者可以不用進行處理,編譯一樣通過。

之所以用在函數上聲明,是因為不需要讓調用者處理。

異常在子父類覆蓋中的體現;

1,子類在覆蓋父類時,如果父類的方法拋出異常,那么子類的覆蓋方法,只能拋出父類的異常或者該異常的子類。
2,如果父類方法拋出多個異常,那么子類在覆蓋該方法時,只能拋出父類異常的子集。
3,如果父類或者接口的方法中沒有異常拋出,那么子類在覆蓋方法時,也不可以拋出異常。

如果子類方法發生了異常。就必須要進行try處理。絕對不能拋。

throws 和 throw 的區別:

throws:使用在函數上(小括號和大括號之間),后面跟的是異常類,可以跟多個。中間用“,”(逗號)隔開。

throw: 使用在函數內,后面跟的是異常對象。throw后面不能加語句,因為throw后面的語句無法執行到。

習題練習:

?
1
2
3
4
5
6
7
8
9
/*需求:畢老師用電腦上課。
分析:
先寫出正常運行時的代碼:電腦開機后上課
分析電腦會出現的問題,如:藍屏,冒煙
此時需要自定義兩個“藍屏,冒煙“”自定義異常,封裝成對象。
藍屏后,電腦重啟,之后繼續上課
電腦冒煙后,出現了老師的問題,不能上課了,可以先做練習,畢老師將問題拋給校長。此時拋出的問題不再是電腦冒煙,而應該是老師不能上課了
問題拋給校長后,校長catch后給出解決方案
*/
?
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
class LanPingException extends Exception //自定義藍屏異常
{
  LanPingException(String message)
  {
    super(message);
  }
}
 
class MaoYanException extends Exception//自定義冒煙異常
{
  MaoYanException(String message)
  {
    super(message);
  }
}
 
class NoclassException extends Exception//自定義不能上課異常
{
  NoclassException(String message)
  {
    super(message);
  }
}
 
class Computer 
{
  private int state = 2;//硬性規定電腦狀態
  //問題是在運行時發生的,所以得定義在運行時
  public void run()throws LanPingException,MaoYanException//因為有可能出現錯誤,所以必須先聲明
  {
    if (state==2)
    {
      throw new LanPingException("電腦藍屏了。。。");//因為電腦不能自己處理,所以拋給了老師
    }
    if (state==3)
    {
      throw new MaoYanException("電腦冒煙了。。。");
    }
    System.out.println("電腦開機,運行中。。。。"); 
  }
  public void restart()
  {
    System.out.println("電腦重啟。。。。");
  }
}
class Teacher
{
  private String name;
  private Computer comp;
  Teacher(String name) 
  {
    this.name = name;
    comp = new Computer();//初始化時老師就有電腦了
  }
  public void test()
  {
    System.out.println("做練習");
  }
  public void teach() throws NoclassException//標識應該是拋出去的異常,能夠進行處理的
  {
    try
    {
      comp.run();//講課,要先開啟電腦
    }
    catch (LanPingException e)//拋出了兩個異常,必須用兩個catch
    {
       
      System.out.println(e.getMessage());
      comp.restart();
    }
    //這個問題拋給老師的話依舊無法解決,應該拋出對應的問題,這里老師拋出的問題應該是不能上課了
    catch (MaoYanException e)
    {
      test();//不能上課,可以先布置練習,這個必須在throw 之前,因為throw之后的語句不會執行
      throw new NoclassException(e.getMessage()+",無法繼續上課");
    }
     
    System.out.println(name+",上課中。。。。");
  }
}
 
class ExceptionTest
{
  public static void main(String[] args)
  {
    Teacher t = new Teacher("畢老師");//指定一個老師
    try
    {
       
      t.teach();//老師運行這個方法
    }
    catch (NoclassException e)//抓住對應的拋出的問題
    {
      System.out.println(e.toString());//打印出問題原因
      System.out.println("自習或者放假");//處理辦法
    }
     
  }
}
?
1
2
3
4
5
6
7
8
9
10
11
當電腦狀態為1時,輸出為:
電腦開機,運行中。。。。
畢老師,上課中。。。。
當電腦狀態為2時,輸出為:
電腦藍屏了。。。
電腦重啟。。。。
畢老師,上課中。。。。
當電腦狀態為3時,輸出為:
做練習
NoclassException: 電腦冒煙了。。。,無法繼續上課
自習或者放假 <br>

如有疑問請留言或者到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

原文鏈接:http://blog.csdn.net/u012324102/article/details/53535617

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产色图片 | 91tv在线 | 亚洲春色综合另类网蜜桃 | 国产一区二区在线观看视频 | 免费网址在线观看入口推荐 | 成人国产第一区在线观看 | 精品国产国产精2020久久日 | 国产123区在线视频观看 | 三年片韩国在线 | 亚洲 日韩经典 中文字幕 | 午夜人妻理论片天堂影院 | 国产欧美日韩精品一区二区三区 | 紧身牛仔裤美女被啪啪久久网 | 日本在线小视频 | 久久久久久久电影 | 日本免费在线观看 | 我的好妈妈7中字在线观看韩国 | 特级一级全黄毛片免费 | 国产一区二区视频在线播放 | 日本免费不卡在线一区二区三区 | 亚洲国产精品嫩草影院久久 | 天美麻豆| 精品久久免费观看 | 蜜桃久久久亚洲精品成人 | 国产男人搡女人免费视频 | 小货SAO边洗澡边CAO你动漫 | 久久这里都是精品 | 日本xxxxxxxxx59| 亚洲 欧美 偷自乱 图片 | 午夜福利理论片高清在线 | 18xxxx中国| 红楼影视h38bar在线线播放 | 国产精品高清一区二区三区不卡 | 亚洲 综合 欧美在线视频 | 非洲黑人gay巨大 | 福利姬 magnet | 欧美又大又粗又爽视频 | 精品湿 | 欧美成人一区二区三区 | 精品国产自在现线拍国语 | bdsm酷刑折磨死美女 |