摘要:自定義項目異常使用自動生成無參和全部參數的構造方法,并生成對應字段的和方法異常鏈處理層層運行執行之后,在的中捕獲到了異常,打印的異常信息為我們在拋出的異常變為切面拋出的異常的就是而不是,到了最終捕獲到的還是我們最初的拋出的類型。
1.自定義項目異常
使用lombok自動生成無參和全部參數的構造方法,并生成對應字段的get和set方法
@Data @AllArgsConstructor @NoArgsConstructor public class MyException extends Exception{ private int code; private String errorMessage; }2.異常鏈處理
/** * dao層 * / public class MyDao { public void getUserInfo() throws MyException{ throw new MyException(2,"request param error"); } }
/** * service層 * / public class MySerivice { public void getUserInfo() throws Throwable{ MyDao myDao = new MyDao(); myDao.getUserInfo(); } }
public class TTService { public static void main(String[] args){ MySerivice mySerivice = new MySerivice(); try { mySerivice.getUserInfo(); }catch (MyException myException){ System.err.println("myException:"+myException.getCode()+"/"+myException.getErrorMessage()); }catch (Exception excepiton){ System.err.println("excepiton:"+excepiton.getMessage()); }catch (Throwable throwable){ System.err.println("throwable:"+throwable.getMessage()); } } }
運行執行之后,在TTService的MyException中捕獲到了異常,打印的異常信息為:
myException:2/request param error
我們在MySerivice拋出的異常變為 Throwable(aop切面拋出的異常的就是Throwable)而不是MyException,到了TTService最終捕獲到的還是我們最初的拋出的MyException類型。
(雖然MySerivice拋出父類Throwable,其實父類引用指向子類對象MyException,最終捕獲的也就是子類的異常對象MyException)。
從上圖中我們可以看出,MyException是Exception的子類,而Exception又是Throwable的子類。
我們通過throw拋出異常MyExcepiton,方法通過throws一層層往上拋出的異常要大于等于異常MyExcepiton,也就是說throws拋出的異常必須是MyExcepiton或者父類。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/67277.html
摘要:在中,異常被當做對象來處理,其基類是。又分為檢查異常和運行時異常。但在子類中,只有三類異常類提供了帶參數的構造器,其它類型的異常則需要通過方法。在程序的邊界進行異常捕獲。只針對異常的情況才使用異常。 1、什么是異常 結構不佳的代碼不能運行,這是Java的基本理念。 發現錯誤的理想時機是在編譯期。然而,編譯器并不能發現所有的錯誤,余下的問題就需要在程序運行時解決。這就需要錯誤能通過某種方...
摘要:相關類的結構如下所示類類是語言中所有錯誤和異常的超類,只有當一個對象直接或者間接的是此類的實例時,才能通過語句拋出異常,同樣,只有這種類才能被語句捕獲進行處理類的子類是錯誤,不是程序可以處理的,一般會是內存不足,線程終止,虛擬機運行錯誤等, 相關類的結構如下所示 java.lang.Object java.lang.Throwable java.lang.Error java....
摘要:調用攔截器的方法,它在處理器實際執行之前會被執行,它在處理器執行完畢以后被執行,它在整個請求處理完成之后被執行。根據參數調用具體的方法,并獲取返回值交有具體的參數解析器后,完成具體的相應參數的解析,例如包括請求中得是等進行相應的解析。 官方文檔說明 中文文檔鏈接部分內容引字下面博客博客1博客2 前言:DispacherServlet是什么? 與很多的web框架一樣,Spring Mvc...
摘要:對異常的處理方法是打印異常的跟蹤棧信息并終止程序運行。應盡量對異常進行適當的處理,而不是簡單的將異常跟蹤棧信息打印出來。 一、異常概述 開發者都希望所有錯誤都能在編譯階段被發現,就是試圖在運行程序之前排除所有錯誤,但這是不現實的,余下問題必須在運行期間得到解決。 Java將異常分為兩種:CheckedException和RuntimeException。其中,CheckedExcept...
摘要:阻止當前方法或作用域的,稱為異常。一非檢查異常和,以及她們的子類。強制要求對這類異常做預備處理使用或者。這樣的異常一般是由程序的運行環境導致的。后跟的是異常對象,或者異常對象的引用。 異常 什么是異常 相異與常態,和正常情況下不一致,有錯誤出現。 阻止當前方法或作用域的,稱為異常。 異常分類 showImg(https://segmentfault.com/img/bVbfpnY?w=...
閱讀 3016·2021-10-27 14:15
閱讀 3009·2021-09-07 10:18
閱讀 1326·2019-08-30 15:53
閱讀 1579·2019-08-26 18:18
閱讀 3380·2019-08-26 12:15
閱讀 3466·2019-08-26 10:43
閱讀 659·2019-08-23 16:43
閱讀 2213·2019-08-23 15:27