簡體   English   中英

Java - 如何在“異常”之后停止我的程序讀取下一行

[英]Java - How do I stop my program to read next line(s) after an “Exception”

我需要一些幫助。

當我做出“捕捉異常”的事情時,它不會停止閱讀更多的線條。 我該如何防止這種情況?

我喜歡這樣:

try {
    double1 = Double.parseDouble(args[2]);
} catch (NumberFormatException e) {
    e.printStackTrace();
    user.sendMessage("Can't parse 3rd argument into a number!");
} 
if(double1 > 200 || double1 <= 0) {
user.sendMessage("Error. Nothing special here.");
}

當我得到解析錯誤的異常時,它將繼續讀取以讀取其他錯誤預防方法[if(double> 200 || double 1 <= 0){}]並且因為double1不是數字,它將發送出去給執行該操作的用戶另一個ERROR字符串。

這是它尋找用戶的方式:

消息:無法將第三個參數解析為數字!

消息:錯誤。 這里沒什么特別的。

兩條錯誤消息,其中一條甚至不應該存在。 我怎么做才這樣只出現第一個錯誤? 所以它阻止了第二條錯誤消息?

try {
    double1 = Double.parseDouble(args[2]);

    if (double1 > 200 || double1 <= 0) {
        user.sendMessage("Error. Nothing special here.");
    }
} catch (NumberFormatException e) {
    e.printStackTrace();
    user.sendMessage("Can't parse 3rd argument into a number!");
} 

這有效,但它不是一個很好的設計。 NumberFormatException未正確處理,因為您正在記錄它,然后允許其余代碼運行。 你實際上希望它停止執行而不運行其余代碼( if條件),這就是異常應該做的事情 - 要么提前返回,要么傳播異常以便在堆棧中進一步處理。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM