gpt4 book ai didi

java - Java 中抛出异常的高级概述

转载 作者:太空宇宙 更新时间:2023-11-04 07:23:41 24 4
gpt4 key购买 nike

我对 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()中执行此操作。当您抛出 new IllegalArgumentException("Please Enter Your Name..!"); 时,程序会停止并显示有关此异常的消息(除非您以 try-catch 方式处理它)。

最后,当您创建自己的 Exception 类时,扩展一些异常:

class MyException extends IllegalArgumentException {
...
}

在这种情况下,您可以在代码中抛出 new MyException();

我建议您阅读更多有关 Java 异常的内容,以了解发生了什么。您可以从 this lesson 开始.

关于java - Java 中抛出异常的高级概述,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18902495/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com