1. 程式人生 > >出現“未報告的異常錯誤,必須對其進行捕獲或宣告以便丟擲”的解決

出現“未報告的異常錯誤,必須對其進行捕獲或宣告以便丟擲”的解決

錯誤:未報告的異常錯誤,必須對其進行捕獲或宣告以便丟擲

出現錯誤:是因為沒有對異常進行捕獲或宣告

javaNosuchElementException

首先說一下Java 中throws的作用:

假如函式部分有不合法的異常,例如分母為0:

import java.util.Scanner;
public class Helloexcept{
    public static void main(String[] args)throws Exception{
        int c=1/0;
        System.out.println(c);
    }
}

編譯之後,將會丟擲異常:

這裡寫圖片描述

在Java中,根據錯誤性質將執行錯誤分為兩類:錯誤和異常。

在Java程式的執行過程中,如果出現了異常事件,就會生成一個異常物件。生成的異常物件將傳遞Java執行時系統,這一異常的產生和提交過程稱為拋棄(throw)異常。當Java執行時系統得到一個異常物件時,它將會沿著方法的呼叫棧逐層回溯,尋找處理這一異常的程式碼。找到能夠處理這類異常的方法後,執行時系統把當前異常物件交給這個方法進行處理,這一過程稱為捕獲(catch)異常。

解決:

方法一:

即在main函式的後面加入throws Exception的異常捕獲

import java.util.Scanner;
public class ReadData{
    public
static void main(String[] args)throws Exception{ java.io.File file =new java.io.File("xixi.txt"); Scanner input=new Scanner(file); while(input.hasNext()){ String firstname=input.next(); String mi=input.next(); String lastname=input.nextt(); int
score=input.nextInt(); System.out.println(firstname+" "+mi+" "+lastname+" "+score); } input.close(); } }

方法二:

利用try,catch

import java.util.Scanner;
public class Wrong2343{
    public static void main(String[] args){
        int c;
        try{
            c=1/0;
        }
        catch(Exception e){
            System.out.println("Wrong!");
        }
        System.out.println("Haha!");
    }
}

需要注意,如果寫Java的類名(檔名)帶有Exception時,會出現這樣的問題:

這裡寫圖片描述

所以要注意類名不產生歧義