Java 教程《語法說明》Throwing an Exception
■ Throwing an Exception
◆ throw
throw new ClassOfThrowable;
或
throw e; // e 是 Throwable 或其子類別的 instance
[用法]
ClassOfThrowable 必須是 Throwable 類別或其子類別
[範例]
throw new Exception( );
◆ throws
[modifiers] returnType methodName( [parameterList] ) throws ExceptionClass1, ExceptionClass2 ‥‥ {
....
}
[用法]
任何的method丟出例外須利用 throws 陳述句宣告丟出何種類的例外
[範例]
public void myMethod( ) throws Exception {
....
}
[註]
◇ 自行定義新的例外類別
[class-modifier] class myException extends Exception { ‥‥ }
[說明]
自訂例外類別必須繼承 Throwable 類別或其子類別。
◇ Throwable Class 說明
1. 所有例外類別都繼承自 java.lang.Throwable 類別。
例外細分為兩大類,分別為 java.lang.Exception 和 java.lang.Error 類別。
一般而言不會在程式中捕捉可能發生的 Error,因為無法給予適當的處理。
而Exception類別則包含了一般性的例外狀況,例如 I/O 例外等。
2. 程式執行時發生例外,可採取下列方式解決
1) 交由Java例外處理機制的預設方法處理
2) 自行使用 try-catch-finally 敘述處理程式可能發生的例外
[範例]
class myException extends Exception {
String NewExceptionMessage;
public myException( ) { //建構函式1
this.NewExcepti;
}
public YourException(String s) { //建構函式2
this.NewExceptionMessage = s;
}
public void setmyMessage(String s) { //設定錯誤訊息
this.NewExceptionMessage = s;
}
public String getmyMessage( ) { //取得錯誤訊息
return this.NewExceptionMessage;
}
public void ShowExceptionMessage( ) { //顯示自定格式的錯誤訊息
System.out.println("YourException類別:");
System.out.println("捕捉到YourException例外!!");
System.out.println("錯誤訊息==> " + getYourMessage( ));
}
}
public class myExTest {
public static void main(String args[ ]) {
try {
throw new myException("這是一個錯誤!!!");
}
catch(myException e){
System.out.println("取得錯誤訊息==> " + E.getYourMessage( ));
e.ShowExceptionMessage( );
}
}
}