Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在try块内抛出异常并终止程序_Java_Exception - Fatal编程技术网

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

Java 如何在try块内抛出异常并终止程序,java,exception,Java,Exception,我的程序以表示日期的DD/MM/YYYY形式从控制台获取输入。 我相应地存储所有数据。在这个try-catch块中,我检查变量“m”是否是正确的月份,关于日期,并且介于1和12之间 如果“m”不是数字,则抛出NumberFormatException我希望能够在if条件内抛出异常,并终止显示抛出错误和相关消息的程序 try { m = Integer.parseInt(data[1]); if (m < 1 && m > 12) throw new Numbe

我的程序以表示日期的
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;
}
试试看
{
m=整数.parseInt(数据[1]);
如果(m<1&&m>12)
抛出新的数字格式异常(m+“残废月”);
else如果((m>8&&m%2!=0&&d==31)| |(m<8&&m%2==0&&d==31))
抛出新的数字格式异常(m+“”+d+“luna,zi invalida”);
其他的
月=月[m];
}捕获(数字格式)
{
m=0;
}

您应该在try-catch块中包含
Integer.parseInt(数据[1])
,但所有其他代码都在它之外。如果您经常使用
parseInt
,则可以在函数内部进行转换

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

// Rest of the code goes here

在挡块里面。打这个

      System.exit(0).

我在JavaFXGUI中使用它。

删除try-catch并向方法中添加throws声明您可以重新抛出异常:
抛出新的RuntimeException(e)
最好将您的方法抛出声明为上述注释,但有时这也很合适。