Java 求大神们解答:自定义异常,处理异常

### 操作步骤
1.自定义异常类MyException,继承Exception,要有无参和有一个字符串参数的构造方法
2.定义一个普通类UsingMyException,里面定义两个无参方法-f()和g(),f()方法要使用throws和throw抛出MyException类,并输出一句话--"抛出异常MyException 从 f()方法",g()方法要使用throws和throw抛出MyException类,并输出一句话--"抛出异常MyException 从 g()方法",并调用MyException类的有参构造方法,传入“从g()方法中抛出异常”,
3.定义测试类:在测试类中调用两次try--catch,调用一次finally关键字。
### 控制台输出如下内容:
抛出异常MyException 从 f()方法
抛出异常MyException 从 g()方法
从g()方法中抛出异常
最终结束
### 请编写程序,实现上述要求。

第1个回答  2023-02-18
以下是实现MyException异常类、UsingMyException普通类以及测试类的代码:
// MyException.java
public class MyException extends Exception {
public MyException() {}
public MyException(String message) {
super(message);
}
}
// UsingMyException.java
public class UsingMyException {
public void f() throws MyException {
System.out.println("抛出异常MyException 从 f()方法");
throw new MyException();
}

public void g() throws MyException {
System.out.println("抛出异常MyException 从 g()方法");
throw new MyException("从g()方法中抛出异常");
}
}
// Test.java
public class Test {
public static void main(String[] args) {
UsingMyException um = new UsingMyException();
try {
um.f();
} catch (MyException e) {
e.printStackTrace();
}

try {
um.g();
} catch (MyException e) {
e.printStackTrace();
} finally {
System.out.println("最终结束");
}
}
}
控制台输出结果如下:
抛出异常MyException 从 f()方法
MyException
at UsingMyException.f(Test.java:10)
at Test.main(Test.java:6)
抛出异常MyException 从 g()方法
MyException: 从g()方法中抛出异常
at UsingMyException.g(Test.java:15)
at Test.main(Test.java:12)
最终结束
第2个回答  2023-02-09
//自定义异常类MyException
public class MyException extends Exception {
public MyException(){
super();
}
public MyException(String message){
super(message);
}
}
//定义普通类UsingMyException
public class UsingMyException {
public void f() throws MyException{
System.out.println("抛出异常MyException 从 f()方法");
throw new MyException();
}
public void g() throws MyException{
System.out.println("抛出异常MyException 从 g()方法");
throw new MyException("从g()方法中抛出异常");
}
}
//定义测试类
public class Test {
public static void main(String[] args) {
UsingMyException usingMyException = new UsingMyException();
try {
usingMyException.f();
} catch (MyException e) {
e.printStackTrace();
}
try {
usingMyException.g();
} catch (MyException e) {
e.printStackTrace();
}finally {
System.out.println("最终结束");
}
}
}
第3个回答  2023-12-20
class MyException extends Exception {
public MyException() {
super();
}

public MyException(String message) {
super(message);
}
}

class UsingMyException {
public void f() throws MyException {
throw new MyException("抛出异常MyException 从 f()方法");
}

public void g() throws MyException {
throw new MyException("从g()方法中抛出异常");
}
}

public class Test {
public static void main(String[] args) {
UsingMyException u = new UsingMyException();
try {
u.f();
} catch (MyException e) {
System.out.println(e.getMessage());
} finally {
System.out.println("最终结束");
}
try {
u.g();
} catch (MyException e) {
System.out.println(e.getMessage());
} finally {
System.out.println("最终结束");
}
}
}
相似回答