1. 程式人生 > 其它 >【程式設計題】Java程式設計題二(10道)

【程式設計題】Java程式設計題二(10道)

class MyException extends Exception { //自定義異常繼承Exception類

public MyException(String msg) { //呼叫父類構造方法傳遞“異常資訊”
  super(msg);
  }
}

public class ExceptionTest {

public static void Arithmetic() throws MyException {
  //靜態類Arithmetic需向上丟擲自定義異常,目的是交給呼叫者處理
  int a = 10, b = 0;
  if (b == 0) { //滿足該條件則執行以下語句
    System.out.println("b的值不符合條件,所以我要丟擲算術異常...");
    throw new MyException("算數異常!"); //丟擲一個自定義異常,異常資訊為“算數異常”
  }
  System.out.println(a / b); //程式若執行到此步則說明沒有異常
}

public static void ArrayIndexOfBounds(int[] arr) throws MyException {
  //靜態類ArrayIndexOfBounds需向上丟擲自定義異常,目的是交給呼叫者處理
  System.out.print("列印陣列的各項值:");
  for (int i = 0; i <= arr.length; i++) {
    if (i == arr.length) { //滿足該條件則執行以下語句
      throw new MyException("陣列下標越界異常!"); //丟擲一個自定義異常,異常資訊為“陣列下標越界異常”
    }
    System.out.print(arr[i] + " "); //程式若執行到此步則說明沒有異常
  }
  System.out.println();
}
public static void main(String[] args) {
  int[] arr = {23, 11, 45, 48, 33};

  /*若要呼叫一個向上丟擲了異常的方法就必須得進行兩種異常處理方式其中的一種,否則會造成編譯時異常,編譯器不會通過
  * 1 在方法宣告的位置上使用throws關鍵字接著向上丟擲異常,但總要有人處理,若是main方法向上丟擲異常,
  * 則會交給JVM處理,結果只有一種:終止該程式。
  * 2 使用try...catch語句捕捉該異常

  * 我們在這裡就使用try...catch語句對有異常的語句進行捕捉
  */
  try {
    System.out.println("呼叫Arithmetic()方法...");
    Arithmetic();
  } catch (MyException e) {

    System.out.println("捕捉到算術異常...");
    System.out.println(e.getMessage());
  }

  System.out.println();
  try {
    System.out.println("呼叫ArrayIndexOfBounds()方法...");
    ArrayIndexOfBounds(arr);
  } catch (MyException e) {
  System.out.println("捕捉到算術異常...");
  System.out.println(e.getMessage());
  }

  System.out.println("Exit..."); //程式退出...
  }

}