淺談java異常鏈與異常喪失。本站提示廣大學習愛好者:(淺談java異常鏈與異常喪失)文章只能為提供參考,不一定能成為您想要的結果。以下是淺談java異常鏈與異常喪失正文
1、在java的結構辦法中供給了 異常鏈.. 也就是我們可以經由過程結構辦法赓續的將 異常串連成一個異常鏈...
之所以須要異常連,是由於處於代碼的可懂得性,和浏覽和法式的可保護性...
我們曉得我們每拋出一個異常都須要停止try catch ...那末豈不是代碼很癡肥...
我們假如可以將異常串連成一個異常連,然後我們只捕捉我們的包裝 異常,我們曉得 RuntimeException 和其派生類可以不停止try catch 而被jvm主動捕捉並處置..
固然了我們可以本身界說本身的異常類從RuntimeException中派生,然後經由過程一級一級的包裝,假設異常湧現了JWM經由過程我們的自界說RuntimeException直接輸入 cause
(緣由)也就是 我們的異常鏈..是以我們的一切異常也就輸入了,如許就削減了許多的異常處置的代碼。。。
只要 Throwable ----> Exception RuntimeException Error供給了 結構辦法完成異常鏈的機制。。。其他異常須要經由過程initCause來
結構異常連..
上面一段代碼就是異常連的一個簡略示例...可以打印全部法式進程中湧現的異常。。
public class TestT { public static void a() throws Exception{ //拋出異常給下級處置 try { b() ; } catch (Exception e) { throw new Exception(e) ; } } public static void b() throws Exception{ //拋出異常給下級處置 try { c() ; } catch (Exception e) { throw new Exception(e); } } public static void c() throws Exception { //拋出異常給下級處置 try { throw new NullPointerException("c 異常鏈中的空指針異常..") ; } catch (NullPointerException e) { throw new Exception(e) ; } } public static void main(String[]args){ try { a() ; } catch (Exception e) { e.printStackTrace(); } } }
2、 try catch ...finally 有個破綻就是異常缺掉.. 例如三個try catch 嵌套在一路 ..外部的2個try catch 便可以省略 catch ....直接 try finally ..
看上面代碼 我們發明喪失了2個異常信息
public class MyTest { public void open() throws Exception{ throw new Exception(){ public String toString() { return this.getClass().getName()+"CeryImmportException"; }; } ; } public void close() throws Exception{ throw new Exception(){ public String toString() { return this.getClass().getName()+"close Exception" ; }; } ; } public void three() throws Exception{ throw new Exception(){ public String toString() { return this.getClass().getName() + "three" ; }; } ; } public static void main(String[]agrs){ MyTest mt=new MyTest() ; try{ try{ try{ mt.open(); }finally { System.out.println("delete open"); mt.close() ; } } finally{ System.out.println("delete close"); mt.three() ; } }catch(Exception ex){ ex.printStackTrace(); } } }
以上這篇淺談java異常鏈與異常喪失就是小編分享給年夜家的全體內容了,願望能給年夜家一個參考,也願望年夜家多多支撐。