本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

Java 中抛出异常的高级概述

发布于2024-11-10 08:34     阅读(1045)     评论(0)     点赞(1)     收藏(4)


我对 Java 中的异常以及何时使用哪种特定的实现方式有点困惑。

我使用 IllegalArgumentException 作为示例,但我想讨论的重点是何时抛出、扩展或抛出新异常?

另外作为补充,我有一个任务,我必须创建一个 java 类,并且规范模糊地指出构造函数应该抛出一个 IllegalArgumentException,那么哪一个最好使用?

public class Test{

    //when does one use this type of exception
    public Test(String yourName) throws IllegalArgumentException{
      //code implemented
    }

    //when does one use this type of exception
    public Test(String yourName) extends IllegalArgumentException{
      //code implemented
    }

    public Test(String yourName){

         if(yourName.length() <= 0){
             //why not use this type of exception instead 
             //and what happens when I use this type of exception
             throw new IllegalArgumentException("Please Enter Your Name..!");
         }
    }

}

提前致谢。


解决方案


当发生异常时,有两种方法可以处理它:从方法中抛出异常或执行try-catch。第一种方法如下:

public class MyClass {
    public void myMethod() throws IllegalArgumentException {
        someOtherMethod();
    }
}

在这种情况下,您知道someOtherMethod()可能会引发异常,但您不想处理它 - 您只需将其传递下去即可。此后, 的调用者myMethod()应该处理异常。

但第二种方法是你自己处理:

public void myMethod()  {
    try {
        someOtherMethod();
    } catch (Exception e) {
        System.out.println("You've got an exception!");
    }
}

关于手动抛出异常 - 您可能假设您在 中执行此操作someOtherMethod()。当您这样做时,throw new IllegalArgumentException("Please Enter Your Name..!");程序会停止并显示有关此异常的消息(除非您以try-catch方式处理它)。

最后,当你创建自己的异常类时,你可以扩展一些异常:

class MyException extends IllegalArgumentException {
    ...
}

在这种情况下,您可以throw new MyException();在代码中执行此操作。

我建议你多读一些有关 Java 异常的内容,以了解发生了什么。你可以从本课开始。



所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:http://www.javaheidong.com/blog/article/692050/7e4b5b976a8da0a2e68b/

来源:java黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

1 0
收藏该文
已收藏

评论内容:(最多支持255个字符)