当前位置: 首页 > 知识库问答 >
问题:

如何在try块中抛出异常并终止程序

平山
2023-03-14

我的程序从控制台获取表示日期的输入,即DD/MM/YYYY。我会相应地存储所有数据
在这个try-catch块中,我检查变量“m”是否是正确的月份,关于日期,介于1和12之间。

如果“m”不是数字,则抛出NumberFormatException
我希望能够在if条件中抛出异常并终止显示抛出的错误和与之关联的消息的程序。

try
{
m = Integer.parseInt(data[1]);
if (m < 1 && m > 12)
    throw new NumberFormatException(m + " luna invalida");
else if ((m > 8 && m % 2 != 0 && d == 31) || (m < 8 && m % 2 == 0 && d == 31))
    throw new NumberFormatException(m + " " + d + " luna,zi invalida");
else
    luna = month[m];

} catch (NumberFormatException e)
{
    m = 0;
}

共有2个答案

易琨
2023-03-14

在挡块里面。打这个

      System.exit(0).

我在JavaFXGUI中使用它。

萧辰沛
2023-03-14

您应该将Integer.parseInt(data[1])放在try-catch块中,但将所有其他代码放在它外面。如果您经常使用parseInt,您可以在函数中进行转换。

m = 0;
try {
    m = Integer.parseInt(data[1]);
} catch (NumberFormatException e)
{
    e.printStackTrace();
}

// Rest of the code goes here
 类似资料:
  • 在你可以捕获异常之前,一些代码必须抛出一个异常。任何代码都可能会抛出异常:您的代码,来自其他人编写的包(例如Java平台附带的包)或Java运行时环境的代码。无论是什么引发的异常,它总是通过 throw 语句抛出。 您可能已经注意到,Java平台提供了许多异常类。所有类都是Throwable类的后代,并且都允许程序区分在程序执行期间可能发生的各种类型的异常。 您还可以创建自己的异常类来表示在您编写

  • 我有一个实现以下接口的基类,上面声明的方法抛出基本异常类型。 有许多具体的类扩展了基类,我不想在所有这些类中添加块。有没有一种方法可以处理而不添加? 接口 基层 混凝土类示例(共30个)

  • 我知道JVM有一个异常表,它映射在给定字节码索引中可以抛出的可能异常。我还读到athrow字节码抛出了堆栈顶部存在的引用类型的exception。我的问题更多地涉及像irem这样的指令如何“抛出”异常。 JVM是否会在每次指令执行后检查堆栈的顶部,以检查是否存在异常?如果你能洞察到这件事的话,你会很感激的。

  • 本文向大家介绍在java中,程序员如何手动抛出异常呢?,包括了在java中,程序员如何手动抛出异常呢?的使用技巧和注意事项,需要的朋友参考一下 例外是程序执行期间发生的问题(运行时错误)。发生异常时,程序会突然终止,并且生成异常的行之后的代码将永远不会执行。 示例 输出结果 手动抛出异常 您可以使用throw 关键字显式引发用户定义的异常或预定义的异常。 用户定义和预定义的异常有两种类型,每种异常

  • @apiResponse似乎也没有更正响应类型。 如本问题所述,如何在swagger Codegen中处理多个响应/返回类型(204为空,400为非空等)? 我可以这样扔 但是有没有更好的方法来做到这一点呢?我只想将.getResponseBody()作为对象而不是字符串返回。 非常感谢。

  • 我在junit测试中使用mockito。如何使异常发生,然后断言它有(泛型伪代码)