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)
最好将您的方法抛出声明为上述注释,但有时这也很合适。