當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Java Java.lang.Throwable.initCause()用法及代碼示例



描述

這個java.lang.Throwable.initCause() 方法將此 throwable 的原因初始化為指定值。 (原因是導致這個 throwable 被拋出的 throwable。)它通常在構造函數中調用,或者在創建 throwable 之後立即調用

聲明

以下是聲明java.lang.Throwable.initCause()方法

public Throwable initCause(Throwable cause)

參數

cause- 這就是原因(它被保存以供以後檢索getCause()方法)。 (允許使用空值,表示原因不存在或未知。)

返回值

此方法返回對此 Throwable 實例的引用。

異常

  • IllegalArgumentException- 如果原因是可以拋出的。

  • IllegalStateException- 如果這個 throwable 是用 Throwable(Throwable) 或 Throwable(String,Throwable) 創建的,或者已經在這個 throwable 上調用了這個方法。

示例

下麵的例子展示了 java.lang.Throwable.initCause() 方法的用法。

package com.tutorialspoint;

import java.lang.*;

public class ThrowableDemo {

   public static void main(String[] args) throws Throwable {
     try {
         Exception1();
      } catch(Exception e) {
         System.out.println(e);
      }
   }
  
   public static void Exception1()throws amitException{
      try {
         Exception2();
      } catch(otherException e) {
         amitException a1 = new amitException();
     
         // initializes the cause of this throwable to the specified value. 
         a1.initCause(e);
         throw a1;
      }
   }
  
   public static void Exception2() throws otherException {
      throw new otherException();
   }
}

class amitException extends Throwable {
   amitException() {
      super("This is my Exception....");
   }
}

class otherException extends Throwable {
   otherException() {
      super("This is any other Exception....");
   }
}

讓我們編譯並運行上麵的程序,這將產生以下結果 -

Exception in thread "main" amitException:This is my Exception....
        at ThrowableDemo.Exception1(ThrowableDemo.java:18)
        at ThrowableDemo.main(ThrowableDemo.java:6)
Caused by:otherException:This is any other Exception....
        at ThrowableDemo.Exception2(ThrowableDemo.java:27)
        at ThrowableDemo.Exception1(ThrowableDemo.java:15)
        ... 1 more

相關用法


注:本文由純淨天空篩選整理自 Java.lang.Throwable.initCause() Method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。