(4)自定义异常MyException类。两个构造方法,一个参数和方法体都为空,另一个构造方法的参数是字符串,显示异常名称。 在UsingMyException类中定义两个方法f()和g(),方法f()会输出“Throws MyException from f()”,方法g()会输出“Throws MyException from g()”。这两个方法都会抛出自定义异常MyException。g()异常发生时会显示“originated in g()”。 在主类TestMyException中调用f()和g()方法。异常发生时会显示异常堆栈信息。
时间: 2024-03-16 20:47:23 浏览: 10
好的,我来为您解答。
以下是MyException类的代码:
```java
public class MyException extends Exception {
public MyException() {
super();
}
public MyException(String message) {
super(message);
}
}
```
以下是UsingMyException类的代码:
```java
public class UsingMyException {
public void f() throws MyException {
System.out.println("Throws MyException from f()");
throw new MyException();
}
public void g() throws MyException {
System.out.println("Throws MyException from g()");
MyException e = new MyException("originated in g()");
throw e;
}
}
```
以下是TestMyException类的代码:
```java
public class TestMyException {
public static void main(String[] args) {
UsingMyException obj = new UsingMyException();
try {
obj.f();
} catch (MyException e) {
e.printStackTrace();
}
try {
obj.g();
} catch (MyException e) {
e.printStackTrace();
}
}
}
```
当我们运行TestMyException类时,将会得到以下输出:
```
Throws MyException from f()
MyException
at UsingMyException.f(TestMyException.java:6)
at TestMyException.main(TestMyException.java:13)
Throws MyException from g()
MyException: originated in g()
at UsingMyException.g(TestMyException.java:11)
at TestMyException.main(TestMyException.java:18)
```
以上就是自定义异常MyException类的代码实现,以及在UsingMyException类和TestMyException类中如何使用它的示例。