当前位置:  开发笔记 > 编程语言 > 正文

Java - 如何在"异常"之后停止我的程序读取下一行

如何解决《Java-如何在"异常"之后停止我的程序读取下一行》经验,为你挑选了1个好方法。

我需要一些帮助.

当我做出"捕捉异常"的事情时,它不会停止阅读更多的行.我该如何防止这种情况?

我喜欢这样:

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字符串.

这是它寻找用户的方式:

消息:无法将第三个参数解析为数字!

消息:错误.这里没什么特别的.

两个错误消息,一个甚至不应该在那里.我怎么做才这样只出现第一个错误?所以它阻止了第二条错误消息?



1> Samuel Lindb..:
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条件),这就是异常应该做的事情 - 要么提前返回,要么传播异常以便在堆栈中进一步处理.


Eclipsum - 如果这不起作用,那么你还没有>>理解<<答案.这里真正的要点是你需要了解你的(原始)代码实际上在做什么......然后找出你需要把测试放在"没什么特别的"来满足你的要求的地方.(我认为这是家庭作业或练习或类似的东西,目的是你正在努力学习如何用Java编程.)
推荐阅读
k78283381
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有