日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java学习笔记12--异常处理

發布時間:2025/7/25 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java学习笔记12--异常处理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

java學習筆記系列:

java學習筆記11--集合總結

java學習筆記10--泛型總結?

java學習筆記9--內部類總結

java學習筆記8--接口總結

java學習筆記7--抽象類與抽象方法

java學習筆記6--類的繼承、Object類

java學習筆記5--類的方法?

java學習筆記4--對象的初始化與回收

java學習筆記3--類與對象的基礎?

java學習筆記2--數據類型、數組

java學習筆記1--開發環境平臺總結

本文地址:http://www.cnblogs.com/archimedes/p/java-study-note12.html,轉載請注明源地址。

1、異常處理概述

從一個讀取兩個整數并顯示商的例子:

public static void main(String args[]) {Scanner input = new Scanner(System.in); System.out.print("Enter two integers: ");int number1 = input.nextInt();int number2 = input.nextInt(); System.out.println(number1 + " / " + number2 + " is " + (number1 / number2));}

Enter two integers: 3 0

Exception in thread "main" java.lang.ArithmeticException: / by zero
at Main.main(Main.java:18)

解決的一個簡單的辦法是添加一個if語句來測試第二個數字:

public class Main {public static void main(String args[]){Scanner input = new Scanner(System.in);System.out.print("Enter two integers: ");int number1 = input.nextInt();int number2 = input.nextInt();if(number2 != 0)System.out.println(number1 + " / " + number2 + " is " + (number1 / number2));elseSystem.out.println("Divisor cannot be zero ");} }

為了演示異常處理的概念,包括如何創建、拋出、捕獲以及處理異常,繼續改寫上面的程序如下:

public class Main {public static void main(String args[]){Scanner input = new Scanner(System.in);System.out.print("Enter two integers: ");int number1 = input.nextInt();int number2 = input.nextInt();try {if(number2 == 0)throw new ArithmeticException("Divisor cannot be zero");System.out.println(number1 + " / " + number2 + " is " + (number1 / number2));}catch(ArithmeticException ex) {System.out.println("Exception: an integer " + "cannot be divided by zero ");}System.out.println("Execution continues ...");} }

2、異常處理的優勢

改用方法來計算商:

public class Main {public static int quotient(int number1, int number2) {if(number2 == 0)throw new ArithmeticException("Divisor cannot be zero");return number1 / number2;}public static void main(String args[]){Scanner input = new Scanner(System.in);System.out.print("Enter two integers: ");int number1 = input.nextInt();int number2 = input.nextInt();try {int result = quotient(number1, number2);System.out.println(number1 + " / " + number2 + " is " + result);}catch(ArithmeticException ex) {System.out.println("Exception: an integer " + "cannot be divided by zero ");}System.out.println("Execution continues ...");} }

異常處理的優勢就是將檢測錯誤從處理錯誤中分離出來。

3、異常類型

?4、關于異常處理的更多知識

java的異常處理模型基于三種操作:聲明一個異常、拋出一個異常、捕獲一個異常

聲明異常

在方法中聲明異常,就是在方法頭中使用關鍵字throws,如下所示:

public void myMethod throws Exception1,Exception2,……,ExceptionN

拋出異常

檢測一個錯誤的程序可以創建一個正確的異常類型的實例并拋出它

實例:

IllegalArgumentException ex = new IllegalArgumentException("Worng Argument"); throw ex;

或者直接:

throw new IllegalArgumentException("Worng Argument");

捕獲異常

當拋出一個異常時,可以在try-catch中捕獲和處理它:

try {statements; } catch (exception1 ex1){handler for exception1; } catch (exception1 ex2){handler for exception2; } …… catch (exception1 exN){handler for exceptionN; }

從異常中獲取信息

可以采用Throwable類中的方法獲取異常的信息

public class test {public static void main(String[] args) {try {System.out.println(sum(new int[]{1,2,3,4,5}));} catch(Exception ex) {ex.printStackTrace();System.out.println(ex.getMessage());System.out.println(ex.toString());System.out.println("Trace Info Obtained from getBackTrace");StackTraceElement[] traceElements = ex.getStackTrace();for(int i = 0; i < traceElements.length; i++) {System.out.print("monthod " + traceElements[i].getMethodName());System.out.println("(" + traceElements[i].getClassName());System.out.println(traceElements[i].getLineNumber() + ")");}}}private static int sum(int[] list) {int sum = 0;for(int i = 0; i <= list.length; i++) {sum += list[i];}return sum;} }

finally語句

無論異常是否出現,都希望執行某些代碼,這時可以采取finally子句:

public class test {public static void main(String[] args) {PrintWriter output = null;try {output = new PrintWriter("wu.txt");output.println("wlecome tio java");} catch(IOException ex) {ex.printStackTrace();} finally {if(output != null)output.close();}System.out.println("End of the program");} }

?

轉載于:https://www.cnblogs.com/wuyudong/p/java-study-note12.html

總結

以上是生活随笔為你收集整理的java学习笔记12--异常处理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。