1. 程式人生 > >java中的異常處理

java中的異常處理

功能 編譯 重寫 exce 有一個 人人 關系 構造 per

  計算機語言程序開發中異常幾乎是人人都會出現的問題,可以這麽說:沒有沒有異常的程序!所以,計算機語言中異常處理是十分重要的一塊,糾錯能力也是每個程序員必須具備的基本能力!

  異常處理的三種處理方式:

  一、提前判斷,避免錯誤。異常是可以用代碼去解決的,分為運行時異常和編譯時異常。對於處理異常,通常可以采用這種方式,也是處理異常最優先的考慮方式。

  二、try-catch-finally(處理異常)。

  語法:1.try內聲明的變量,類似於局部變量,出了try{}語句,就不能被調用。2.catch語句內部是對異常對象的處理語句,可以有多個catch語句,try中拋出的異常類對象從上往下去匹配catch中的異常類的類型, 一旦滿足就執行catch中的代碼。執行完,就跳出其後的多條catch語句,相當於if-else執行了某一條catch,其他的catch就不執行了。3.finally是可選的。直接去執行finally(如果有finally的話)。finally中存放的是一定會被執行的代碼,不管try中、catch中是否仍有異常未被處理,finally是一定會被執行的語句(代碼級別只有System.exit(0);可以阻止),即使是語句前有retrun或者break仍然會被執行,再返回retrun。4.如果異常處理了,那麽其後的代碼繼續執行。若catch中多個異常類型是"並列"關系,孰上孰下都可以。 若catch中多個異常類型是"包含"關系,須將子類放在父類的上面,進行處理。否則報錯!同時try-catch是可以嵌套的。
  三、拋異常---不能解決,拋出給調用者解決---throws和throw。

  當可能出現的異常我們不能夠解決需要調用者自身調用時解決的時候我們就需要用到拋異常。
  throw---(針對對象的做法)拋出一個異常,可以是系統定義的,也可以是自己定義的。含義:throw後面是一句執行代碼,一旦被執行就會正的發生一個異常被拋出的動作。如果throws後面跟的是一個運行時異常,就不需要要求方法的聲明部分使用throws;後面跟一個非運行時異常時就要求方法的聲明部分throws加上異常類。當父類的方法拋出的異常與子類拋出的異常必須有繼承關系。

  throws---(針對一個方法拋出的異常)聲明異常。拋出一個異常,可以是系統定義的,也可以是自己定義的。在類的聲明中,寫在方法的聲明部分,throws後面也可以跟上一個或多個異類名。throws不是執行代碼,警告調用者可能報錯。子類重寫父類的方法時不能比父類拋出的異常多(多指的是異常範圍大小);

  自定義異常:我們在工作的時候,項目是分模塊或者分功能開發的 ,基本不會你一個人開發一整個項目,這個時候使用自定義異常類就統一了對外異常展示的方式。自定義異常語法的四大關鍵:

  1.一定要繼承Exception或者是Throwable,否則就根本不是異常類型。

  2.一定要有一個帶Exception或者是Throwable的帶參構造方法,這樣才能把各種異對象當中的數據裝入到自定義異常對象上(調用使用super(ex))。

  3.一定要有一個帶String的帶參構造方法,這樣才能實現業務異常的封裝;

  4.添加自定義異常自身的特有處理方法(比如打印日誌等等)。

  

  

  

java中的異常處理