Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.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,在节目中: 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教程中有详细说明: