创建两个自定义常类MyException1和MyException2,要求如下:
(1)MyException1为已检查异常,MyException2为运行异常;
(2)这两个异常均具有两个构造函数:一个无参,另一个带字符串参数,参数表示产生异常的信息。
在上一题的基础上,把下面代码补充完整。
public class TextMyException {
public static void main(String[] args) {
int n;
//读入n
try{
m(n);
}catch (MyException1 ex1){
//输出ex1的详细方法调用栈信息
}catch (MyException2 ex2){
//输出ex2的详细信息
//并把ex2重新抛出
}
}
public static void m(int n) {//声明抛出MyException1
if (n==1){
//抛出MyException1
//并设定其详细信息为“n==1”
}else {
//抛出MyException2
//并设定其详细信息为“n==2”
}
}
}
class MyException1 extends Exception {
public MyException1() {
super();
}
public MyException1(String message) {
super(message);
}
}
class MyException2 extends RuntimeException {
public MyException2() {
super();
}
public MyException2(String message) {
super(message);
}
}
public class TextMyException {
public static void main(String[] args) {
int n;
//读入n
Scanner sc = new Scanner(System.in);
n = sc.nextInt();
try {
m(n);
} catch (MyException1 ex1) {
//输出ex1的详细方法调用栈信息
ex1.printStackTrace();
} catch (MyException2 ex2) {
//输出ex2的详细信息
//并把ex2重新抛出
ex2.printStackTrace();
throw new MyException2();
}
}
public static void m(int n) throws MyException1 {//声明抛出MyException1
if (n == 1) {
//抛出MyException1
//并设定其详细信息为“n==1”
throw new MyException1("n=1");
} else {
//抛出MyException2
//并设定其详细信息为“n==2”
throw new MyException2("n=2");
}
}
}