国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

Java異常處理之try...catch...語句的使用進階

2019-11-26 14:51:38
字體:
來源:轉載
供稿:網友

try就像一個網,把try{}里面的代碼所拋出的異常都網住,然后把異常交給catch{}里面的代碼去處理。最后執行finally之中的代碼。無論try中代碼有沒有異常,也無論catch是否將異常捕獲到,finally中的代碼都一定會被執行。
雖然 Java 執行時期系統所提供的預設處理器對除錯很有用,你通常想要自己處理例外。這樣做有兩個優點:第一,它讓你修正錯誤。第二,它可以避免程式自動終止。每當錯誤發生時,如果你的程式就停止而且列印出堆疊追蹤,大多數的使用者都會感到很困惑。很幸運,你很容易就能避免這種情形。
要防備并且處理執行時期錯誤,只要將你要監視的程式碼放在 try 區塊里即可。在 try 區塊之后緊接著在 catch 子句里指定你希望捕捉的例外型態
錯誤捕捉例子: 

try {   code; //將自己的代碼放在其中; } catch(e) //如果上面的代碼有錯誤,這里就捕獲 {   alert(e.number); //獲得錯誤信息 } 

 
例如:

import java.io.*;//調用io包 public class SimpleCharInOut { public static void main(String args[])  {   char ch=' ';//定義個字符ch初始為‘ '   System.out.println(" Enter a character please");//在屏幕上輸出Enter a character please   try {//你要監視的程式碼放在 try 區塊里即可。在 try 區塊之后緊接著在 catch 子句里指定你希望捕捉的例外型態       ch=(char)System.in.read();//將從鍵盤輸入的字符賦給ch    }   catch(IOException e) //如果上面的代碼有錯誤,這里就捕獲    {  } ;//錯誤后不進行操作 System.out.println("You're entered character:" + ch);// 在屏幕上輸出You're entered character: //和ch的值  } }

我們在寫Java的try..catch的時候,往往需要在最后加上finally子句關閉一些IO資源,比如

InputStream is;try{  is=openInputStream();  // do something}catch(IOException e){  e.printStaceTrace(e);}finally{  try{    is.close();  }catch(IOException e ){  }}

但是在使用這種模式時,即使是Java老手,偶爾也會犯一些錯誤。比如上面這段代碼,當openInputStream()函數在執行過程中拋出異常,那么變量is的值仍為null,此時執行is.close()會拋出NullPointerException. 由于NullPoiterException不是IOException的子類,因此它不能被catch塊捕獲,而是直接往調用層拋出去. 一種改進的寫法就是在關閉流的時候先進行非空判斷,但這樣代碼會顯得很

主站蜘蛛池模板: 景东| 九江市| 巍山| 长阳| 常熟市| 吉隆县| 清丰县| 庆安县| 新化县| 镇雄县| 探索| 鄂托克前旗| 灵寿县| 富民县| 延川县| 正阳县| 延寿县| 遂宁市| 庆安县| 桐庐县| 同心县| 资兴市| 元朗区| 新乡县| 芦山县| 丁青县| 河南省| 江油市| 溆浦县| 盐城市| 阿巴嘎旗| 宝山区| 靖边县| 新昌县| 乡城县| 保亭| 晋中市| 宜章县| 沂南县| 富民县| 阳东县|