C語言中文網 目錄

Java try catch語句

Java 中通常采用 try catch 語句來捕獲異常并處理。語法格式如下:
try
{
    邏輯代碼塊1;
}
catch(ExceptionType e)
{
    處理代碼塊1;
}
在以上語法中,把可能引發異常的語句封裝在 try 語句塊中,用以捕獲可能發生的異常。

如果 try 語句塊中發生異常,那么一個相應的異常對象就會被拋出,然后 catch 語句就會依據所拋出異常對象的類型進行捕獲,并處理。處理之后,程序會跳過 try 語句塊中剩余的語句,轉到 catch 語句塊后面的第一條語句開始執行。

如果 try 語句塊中沒有異常發生,那么 try 塊正常結束,后面的 catch 語句塊被跳過,程序將從 catch 語句塊后的第一條語句開始執行。

在以上語法的處理代碼塊1中,可以使用以下 3 個方法輸出相應的異常信息。
  • printStackTrace() 方法:指出異常的類型、性質、棧層次及出現在程序中的位置。
  • getMessage() 方法:輸出錯誤的性質。
  • toString() 方法:給出異常的類型與性質。

注意:catch 語句的參數類似于方法的聲明,包括一個異常類型和一個異常對象。異常類型必須為 Throwable 類的子類,它指明 catch 語句可以處理的異常類型,異常對象則由運行時系統在 try 語句塊中生成并被捕獲。

例 1

編寫一個錄入學生姓名、年齡和性別的程序,要求能捕捉年齡不為數字時的異常。在這里使用 try catch 語句來實現,具體代碼如下:
import java.util.Scanner;
public class Test02
{
    public static void main(String[] args)
    {
        Scanner scanner=new Scanner(System.in);
        System.out.println("---------學生信息錄入---------------");
        String name="";    //獲取學生姓名
        int age=0;    //獲取學生年齡
        String sex="";    //獲取學生性別
        try
        {
            System.out.println("請輸入學生姓名:");
            name=scanner.next();
            System.out.println("請輸入學生年齡:");
            age=scanner.nextInt();
            System.out.println("請輸入學生性別:");
            sex=scanner.next();
        }
        catch(Exception e)
        {
            e.printStackTrace();
            System.out.println("輸入有誤!");
        }
        System.out.println("姓名:"+name);
        System.out.println("年齡:"+age);
    }
}

上述代碼在 main() 方法中使用 try catch 語句來捕獲異常,將可能發生異常的“age=scanner.nextlnt();”代碼放在了 try 塊中,在 catch 語句中指定捕獲的異常類型為 Exception,并調用異常對象的 printStackTrace() 方法輸出異常信息。運行結果如下所示。
---------學生信息錄入---------------
請輸入學生姓名:
徐白
請輸入學生年齡:
110a
java.util.InputMismatchException
    at java.util.Scanner.throwFor(Unknown Source)
    at java.util.Scanner.next(Unknown Source)
    at java.util.Scanner.nextInt(Unknown Source)
    at java.util.Scanner.nextInt(Unknown Source)
輸入有誤!
姓名:徐白
年齡:0
    at text.text.main(text.java:19)

提示:一個 catch 語句也可以捕捉多個異常類型,這時它的異常類型參數應該是這多個異常類型的父類。程序設計中要根據具體的情況來選擇 catch 語句的異常處理類型。

精美而實用的網站,提供C語言、C++、STL、Linux、Shell、Java、Go語言等教程,以及socket、GCC、vi、Swing、設計模式、JSP等專題。

Copyright ?2011-2018 biancheng.net, 陜ICP備15000209號

底部Logo
极速pk10开户