異常分類java
try-carch-finally出現規則spa
return關鍵字的使用code
finally中慎用return,雖然語法上沒錯,可是因爲finally的強制執行,影響邏輯上須要return的值
package com.mpp.test; import java.util.InputMismatchException; import java.util.Scanner; public class TryDemoOne { public static void main(String[] args) { /* //要求:定義兩個整數,輸出兩數之商 int one = 12; int two =2; System.out.println("one和two的商是:"+one/two); */ //要求:定義兩個證書,接受用戶的鍵盤輸入,輸出兩數之商 Scanner input = new Scanner(System.in); System.out.println("=========運算開始======="); try { System.out.print("請輸入第一個整數:"); int one = input.nextInt(); System.out.print("請輸入第二個整數:"); int two = input.nextInt(); System.out.println("one和two的商是:" + one / two); } //多重catch結構 catch (ArithmeticException e){ //算數異常 System.exit(1); //終止程序運行 e.printStackTrace(); //打印錯誤信息,出現位置隨機,無固定位置 System.out.println("除數不容許爲零"); } catch (InputMismatchException e){ System.out.println("請輸入整數"); e.printStackTrace(); } catch (Exception e){//當還有不可知異常被拋出時,放一個Exception捕獲全部異常 System.out.println("出錯"); } finally {//不管怎樣都會執行的代碼 System.out.println("=========運算結束======="); } } }
return慎用實例:blog
package com.mpp.test; import java.util.Scanner; public class TryDemoTwo { public static void main(String[] args) { int res = test(); System.out.println("one和two的商是:" + res); } public static int test(){ Scanner input = new Scanner(System.in); System.out.println("=========運算開始======="); try { System.out.print("請輸入第一個整數:"); int one = input.nextInt(); System.out.print("請輸入第二個整數:"); int two = input.nextInt(); return one/two; } catch (ArithmeticException e){ //算數異常 System.out.println("除數不容許爲零"); return 0; } finally {//不管怎樣都會執行的代碼 System.out.println("=========運算結束======="); // return -10000000; finally中慎用return,雖然語法上沒錯,可是因爲finally的強制執行,影響邏輯上須要return的值 } } }