轉: Java反射異常處理之InvocationTargetException
InvocationTargetException異常由Method.invoke(obj, args...)方法丟擲。當被呼叫的方法的內部丟擲了異常而沒有被捕獲時,將由此異常接收。
示例:
[java] view plain copy print?- package com.zzj.test.reflect;
- publicclass Reflect {
- publicvoid run(int i) throws ZeroException {
- B b = new B();
- b.run(i);
- }
-
}
- class B {
- publicvoid run(int i) throws ZeroException {
- if (i < 0) {
- thrownew ZeroException("引數不能小於零!");
- }
- System.out.println("引數:" + i);
- }
- }
- class ZeroException extends Exception {
- privatestaticfinallong serialVersionUID = 1L;
-
private
- public ZeroException(String detailMessage) {
- this.detailMessage = detailMessage;
- }
- public String getMessage() {
- return detailMessage;
- }
- }
- package com.zzj.test.reflect;
-
import java.lang.reflect.InvocationTargetException;
- import java.lang.reflect.Method;
- publicclass Test {
- publicstaticvoid main(String[] args) {
- try {
- Class<?> clazz = Class.forName("com.zzj.test.reflect.Reflect");
- Method method = clazz.getMethod("run", int.class);
- method.invoke(clazz.newInstance(), -1);
- } catch (ClassNotFoundException e) {
- e.printStackTrace();
- } catch (SecurityException e) {
- e.printStackTrace();
- } catch (NoSuchMethodException e) {
- e.printStackTrace();
- } catch (IllegalArgumentException e) {
- e.printStackTrace();
- } catch (IllegalAccessException e) {
- e.printStackTrace();
- } catch (InvocationTargetException e) {
- System.out.println("此處接收被呼叫方法內部未被捕獲的異常");
- e.printStackTrace();
- } catch (InstantiationException e) {
- e.printStackTrace();
- }
- }
- }
- 此處接收被呼叫方法內部未被捕獲的異常
- java.lang.reflect.InvocationTargetException
- at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
- at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
- at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
- at java.lang.reflect.Method.invoke(Unknown Source)
- at com.zzj.test.reflect.Test.main(Test.java:11)
- Caused by: com.zzj.test.reflect.ZeroException: 引數不能小於零!
- at com.zzj.test.reflect.B.run(Reflect.java:13)
- at com.zzj.test.reflect.Reflect.run(Reflect.java:6)
- ... 5 more
- package com.zzj.test.reflect;
- import java.lang.reflect.InvocationTargetException;
- import java.lang.reflect.Method;
- publicclass Test {
- publicstaticvoid main(String[] args) {
- try {
- Class<?> clazz = Class.forName("com.zzj.test.reflect.Reflect");
- Method method = clazz.getMethod("run", int.class);
- method.invoke(clazz.newInstance(), -1);
- } catch (ClassNotFoundException e) {
- e.printStackTrace();
- } catch (SecurityException e) {
- e.printStackTrace();
- } catch (NoSuchMethodException e) {
- e.printStackTrace();
- } catch (IllegalArgumentException e) {
- e.printStackTrace();
- } catch (IllegalAccessException e) {
- e.printStackTrace();
- } catch (InvocationTargetException e) {
- System.out.println("此處接收被呼叫方法內部未被捕獲的異常");
- Throwable t = e.getTargetException();// 獲取目標異常
- t.printStackTrace();
- } catch (InstantiationException e) {
- e.printStackTrace();
- }
- }
- }
- 此處接收被呼叫方法內部未被捕獲的異常
- com.zzj.test.reflect.ZeroException: 引數不能小於零!
- at com.zzj.test.reflect.B.run(Reflect.java:13)
- at com.zzj.test.reflect.Reflect.run(Reflect.java:6)
- at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
- at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
- at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
- at java.lang.reflect.Method.invoke(Unknown Source)
- at com.zzj.test.reflect.Test.main(Test.java:11)
相關推薦
轉: Java反射異常處理之InvocationTargetException
轉自:http://blog.csdn.net/zhangzeyuaaa/article/details/39611467 InvocationTargetException異常由Method.invoke(ob
Java反射異常處理之InvocationTargetException
InvocationTargetException異常由Method.invoke(obj, args...)方法丟擲。當被呼叫的方法的內部丟擲了異常而沒有被捕獲時,將由此異常接收。 示例:packa
SpringBoot中異常處理之InvocationTargetException
InvocationTargetException異常由Method.invoke(obj, args...)方法丟擲。 當被呼叫的方法的內部丟擲了異常而沒有被捕獲時,將由此異常接收。 不要覺得這個異常很難哦 可能就是你的程式碼有缺陷,具體異常再看報錯情況
java web 之路:springmvc全域性異常處理
通常出現異常的處理方法:dao拋給server、server拋給controller、controller拋給前端控制,前端控制器呼叫全域性異常處理器。 全域性異常處理器處理思路: 解析出異常型別 如果是已知的異常,直接取出異常資訊,在錯誤頁頁面展示
轉深入Java虛擬機 之四:類加載機制
method jre 聲明 常量 資源 inittest java開發 啟動 由於 轉載請註明出處:http://blog.csdn.net/ns_code/article/details/17881581 類加載過程 類從被加載到虛擬機內存中開始,到卸載出內存
Java開發知識之Java的異常處理
ssa run 範圍 com 行處理 意思 操作 spa exce Java開發知識之Java的異常處理 一丶異常概述 在講解異常之前,我們要搞清楚.什麽是異常. 通俗理解就是我們編寫的程序出問題了.進行處理的一種手段. 比如我們的QQ.有的時候就崩潰了.比
轉:java提高篇(一)-----理解java的三大特性之封裝
nss 一般來說 隱藏 source 沒有 實例 十個 影響 角度 轉 CSDN https://blog.csdn.net/chenssy/article/details/12757911?utm_source=blogxgwz0 從大二接觸java開始,到現在也差
java 異常處理之宣告丟擲異常
java 異常處理宣告丟擲異常 2.宣告丟擲異常是Java中處理異常的第二種方式 2.宣告丟擲異常是Java中處理異常的第二種方式 如果一個方法(中的語句執行時)可能生成某種異常,但是並不能確定如何處理這種異常,則此方
java中的異常處理之try catch塊的簡單應用
java中的異常根據是否需要人為處理分為倆種: A:非受查異常:派生於Error類,與RuntimeException類(執行時異常)的所有異常。 B:受查異常----:所有不屬於非受查異常類的異常(包
Java 異常處理 之 例項
package com.exception2; /* 題目: 老師正在給學生上課, 突然某個學生說網路斷了, 老師你來幫助處理一下 沒辦法,我只能去找網管 */ public class TestException3//網管類 {
服務閘道器zuul之三:zuul統一異常處理
過濾器中丟擲異常的問題 首先,我們可以來看看預設情況下,過濾器中丟擲異常Spring Cloud Zuul會發生什麼現象。我們建立一個pre型別的過濾器,並在該過濾器的run方法實現中丟擲一個異常。比如下面的實現,在run方法中呼叫的doSomething方法將丟擲Runt
Java 異常處理 之 捕獲處理流程
package com.exception2; /* * 注意: 1. 當異常發生的時候,程式會終止,其後面的程式碼不會執行. 2. 異常分為編譯時異常和執行期異常 編譯期異常必須用 try{}catch{}捕獲,執行期異常可以不捕獲 編譯期異常從 Except
java異常處理之自定義異常類
在實際開發中,開發人員往往需要定義一些異常類用於描述自身程式中的異常資訊,以區分其他程式的異常資訊。就需要自定義異常類。 實現自定義異常類的方法如下: 1、類java.lang.Throwable是所有異常類的基類,它包括兩個子類:Exceptio
【面試加分項】java異常處理之try_catch_finally
try_catch_finally大家應該用的很多,不少人也瞭解一些他們的執行順序,可是它真的有這麼簡單麼,下面我們先來看一段程式碼,大家想想他的執行結果是什麼? public class TestException { int goabl=1
轉:java.lang.IllegalStateException異常產生的原因及解決辦法
錯誤型別大致為以下幾種: java.lang.IllegalStateException:Cannot forward a response that is already committed IllegalStateExce
java入門---異常處理例項之多個異常處理(多個catch)
對異常的處理時,首先就是在宣告異常時,建議宣告更為具體的異常,這樣可以處理的更具體。然後呢,對方宣告幾個異常,就對應幾個catch塊, 如果多個catch塊中的異常出現繼承關係,父類異常catc
java入門---異常處理例項之使用 catch 處理異常
以下例項演示了使用 catch 來處理異常的方法:public class Main { public static void main (String args[]) {
java異常處理之throw, throws,try和catch
程式執行過程中可能會出現異常情況,比如被0除、對負數計算平方根等,還有可能會出現致命的錯誤,比如記憶體不足,磁碟損壞無法讀取檔案等,對於異常和錯誤情況的處理,統稱為異常處理。 Java異常處理主要通過5個關鍵字控制:try、catch、throw、throws和
轉:java提高篇(四)-----理解java的三大特性之多態
優先級 這一 否則 封裝 https 繼續 aid 類方法 void 作者: chenssy 出處: http://www.cnblogs.com/chenssy/ 本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原
轉:Java對象及對象引用變量
棧空間 字符 new 包含 訪問 class 簡單的 構造函數 第一個 Java對象及其引用 關於對象與引用之間的一些基本概念。 初學Java時,在很長一段時間裏,總覺得基本概念很模糊。後來才知道,在許多Java書中,把對象和對象的引用混為一談。可是,如果