If a method is capable of causing an exception that it does not
handle,it must specify this behavior so that callers of the method
can guard themselves against that exception.
class Boxing1{ public static void main(String args[]) throws IOException{ new B().meth2(); System.out.println("33333333"); } } class A{ void meth1() throws IOException{ throw new IOException(); //throw new NullPointerException(); //System.out.println("111111111111"); } } class B{ void meth2() throws IOException{ new A().meth1(); System.out.println("2222222"); } }
Exception in thread "main" java.io.IOException at A.meth1(Boxing1.java:17) at B.meth2(Boxing1.java:24) at Boxing1.main(Boxing1.java:10)
直到我没有在try-catch块中调用meth1,尽管使用了throws,但是有一个异常.抛出的角色是什么?
try{new A().meth1();}catch(Exception e){System.out.println(e);}
我需要你的确认.我很困惑.我的一行查询是 –
抛出还有其他任何角色而不是传播CheckedException吗?
解决方法
>“检查异常”需要开发人员的注意.当您使用抛出已检查异常(即IOException)的方法时,您需要处理它(即捕获它)或将其传播给调用者(即抛出它),假设调用者将捕获它.
>“未经检查的例外”不需要特别注意.这些是NullPointerException,bug等异常.您不希望编写代码来涵盖潜在的错误.无法涵盖一切.不过,如果你想捕获一个未经检查的异常,你可以.
>注意:还有一些其他可抛物体.您可以抛出扩展Throwable类的所有对象.但是您不应该在代码中使用此功能.这实际上是系统错误和断言.
如果抛出一个已检查的异常,则需要通过在方法签名中指定抛出SomeException来警告开发人员.对于未经检查的例外,您不需要.
编译器检查这个.它可以轻松识别未经检查的异常,因为未经检查的异常会扩展RuntimeException类.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。