一:讀程式寫結果 二:根據題意寫出相應代碼 ...
一:讀程式寫結果
1 /* 2 * 異常三步走:try檢測異常,catch捕獲異常,finally關閉資源. 3 */ 4 public class Test { 5 public static void main(String[] args) { 6 Demo demo=new Demo(); 7 int x=demo.method(); 8 System.out.println(x); 9 } 10 11 } 12 13 class Demo { 14 public int method() { 15 int x = 10; 16 try { 17 x = 20; 18 System.out.println(x / 0);//出現異常 19 return x; 20 } catch (ArithmeticException e) {//捕獲異常,給x重新賦值並對x建立返迴路徑(並沒有返回x),再去檢查看有沒有finally代碼塊 21 x = 30; 22 return x; 23 } finally {//重新給x賦值40(但是catch中建立返迴路徑中的x仍為30),返迴路徑中的x值 24 x = 40;//finally中不要寫return語句(可以寫),但是try和catch中的賦值語句就沒有意義了. 25 } 26 } 27 }
二:根據題意寫出相應代碼
1 import java.math.BigDecimal; 2 import java.math.BigInteger; 3 import java.util.Scanner; 4 5 /* 6 鍵盤錄入一個int類型的整數,對其求二進位表現形式 7 * 如果錄入的整數過大,給予提示,錄入的整數過大請重新錄入一個整數BigInteger 8 * 如果錄入的是小數,給予提示,錄入的是小數,請重新錄入一個整數 9 * 如果錄入的是其他字元,給予提示,錄入的是非法字元,請重新錄入一個整數 10 */ 11 public class PraticeTest { 12 public static void main(String[] args) { 13 @SuppressWarnings("resource") 14 Scanner sc = new Scanner(System.in); 15 int num = 0; 16 System.out.println("請輸入一個整數:"); 17 while (true) { 18 String str = sc.next(); 19 try { 20 num = Integer.parseInt(str);// 輸入不是符合要求整數,拋出異常 21 System.out.println(num + "轉換成二進位為:" + Integer.toBinaryString(num)); 22 break; 23 } catch (Exception e) { 24 try { 25 new BigInteger(str);// 若不是過大整數,拋出異常 26 System.out.println("您輸入的是一個過大整數,請重新輸入一個整數:"); 27 } catch (Exception e1) { 28 try { 29 new BigDecimal(str);// 若不是小數,拋出異常 30 System.out.println("您輸入的是一個小數,請重新輸入一個整數:"); 31 } catch (Exception e2) { 32 System.out.println("您輸入的是非法字元,請重新輸入一個整數:"); 33 } 34 35 } 36 37 } 38 } 39 40 } 41 42 }