Java Try块不能抛出任何内容,但没有发生编译时错误
在节目中:Java Try块不能抛出任何内容,但没有发生编译时错误,java,exception,Java,Exception,在节目中: class Ideone { public static void main (String[] args){ try{} catch (NumberFormatException e){ } } } 实际上,描述了这种情况下的行为: 如果catch子句可以检查catch,则是编译时错误 异常类E1,而不是try块 与catch子句相对应的对象可以抛出一个选中的异常类 这是E1的子类或超类,除非E1是Exception或 异常的超类 在我的例子中,
class Ideone
{
public static void main (String[] args){
try{} catch (NumberFormatException e){ }
}
}
实际上,描述了这种情况下的行为:
如果catch子句可以检查catch,则是编译时错误
异常类E1
,而不是try块
与catch子句相对应的对象可以抛出一个选中的异常类
这是E1
的子类或超类,除非E1
是Exception
或
异常的超类
在我的例子中,catch
子句可以捕获既不是Exception
也不是Exception
的超类的内容。Try块不能抛出任何内容,因为其中没有语句。那么,为什么代码编译得很好呢
如果catch子句可以捕获检查的异常,则这是编译时错误
NumberFormatException
不是一个选中的异常。它是IllegalArgumentException
的一个子类,它是RuntimeException
的一个子类。因此,您从JLS中引用的整个条款不适用
将NumberFormatException
替换为非RuntimeException
子类的异常(例如,IOException
),您将得到编译时错误
如果catch子句可以捕获检查的异常,则这是编译时错误
NumberFormatException
不是一个选中的异常。它是IllegalArgumentException
的一个子类,它是RuntimeException
的一个子类。因此,您从JLS中引用的整个条款不适用
将NumberFormatException
替换为非RuntimeException
子类的异常(例如,IOException
),您将得到编译时错误
如果catch子句可以捕获检查的异常,则这是编译时错误
NumberFormatException
不是一个选中的异常。它是IllegalArgumentException
的一个子类,它是RuntimeException
的一个子类。因此,您从JLS中引用的整个条款不适用
将NumberFormatException
替换为非RuntimeException
子类的异常(例如,IOException
),您将得到编译时错误
如果catch子句可以捕获检查的异常,则这是编译时错误
NumberFormatException
不是一个选中的异常。它是IllegalArgumentException
的一个子类,它是RuntimeException
的一个子类。因此,您从JLS中引用的整个条款不适用
将
NumberFormatException
替换为非RuntimeException
子类的异常(例如,IOException
),您将得到编译时错误 也许你可以举个例子?@St.Antario尝试捕捉IOException
@St.Antario用选中的异常替换NumberFormatException
,例如IOException
,你会得到编译错误。@boristesspider我们对同一个例子的想法很有趣:)@Eran我想这是因为IOException
是每个Java开发人员存在的祸根……也许你可以举个例子?@St.Antario尝试捕捉IOException
@St.Antario用选中的异常替换NumberFormatException
,例如IOException
,你会得到编译错误。@Boristeider我们的想法很有趣关于同一个例子:)@Eran我想这是因为IOException
是每个Java开发人员存在的祸根……也许你可以举个例子?@St.Antario尝试捕捉IOException
@St.Antario用选中的异常替换NumberFormatException
,你会得到编译错误。@Boristespider我们对同一个例子的想法很有趣:)@Eran我想这是因为IOException
是每个Java开发人员存在的祸根……也许你可以举个例子?@St.Antario尝试用选中的异常捕获IOException
@St.Antario替换NumberFormatException
-例如,IOException
——你会得到编译错误。@Boristespider我们对同一个例子的想法很有趣:)@Eran我想这是因为IOException
是每个Java开发人员存在的祸根……检查和未检查的异常在官方Java SE教程:检查中有详细解释未检查的异常在官方Java SE教程中有详细说明:已检查和未检查的异常在官方Java SE教程中有详细说明:已检查和未检查的异常在官方Java SE教程中有详细说明: