5.(自定义异常)创建两个自定义异常类MyException1和MyException2。
要求:
Ⅰ.MyException1为已检查异常,MyException2为运行时异常。
Ⅱ.这两个异常均具有两个构造函数,一个无参,另一个带字符串参数,参数表示产生异常的信息。
public class Test05 {
public static void main(String[] args) {
}
}
class MyException1 extends Exception {
public MyException1() {}
public MyException1(String message) {
super(message);
}
}
class MyException2 extends RuntimeException {
public MyException2() {}
public MyException2(String message) {
super(message);
}
}
6.(自定义异常)在上一题的基础上,把下面代码补充完整。
public class TestMyException {
public static void main(String[] args) {
int n;
n = 1;// 读入n
try {
m(n);
} catch (MyException1 ex1) {
ex1.printStackTrace();// 输出ex1详细的方法调用栈信息
} catch (MyException2 ex2) {
ex2.getMessage();// 输出ex2的详细信息
throw ex2;// 并把ex2重新抛出
}
}
public static void m(int n) throws MyException1 {// 声明抛出MyException1
if (n == 1) {
throw new MyException1("n==1");// 抛出MyException1
// 并设定其详细信息为“n==1”
} else {
throw new MyException2("n==2");// 抛出MyException2
// 并设定其详细信息为“n==2”
}
}
}
class MyException1 extends Exception {
public MyException1() {
}
public MyException1(String message) {
super(message);
}
}
class MyException2 extends RuntimeException {
public MyException2() {
}
public MyException2(String message) {
super(message);
}
}
当n=1时:
当n=2时:
当n=3时:
8.(方法覆盖)有如下代码
import java.io.IOException;
class Super {
public void ma() throws IOException {
}
}
interface IA {
void mb();
}
public class MySub extends Super implements IA {
public void ma()//1 {}
public void mb()//2 {}
}
在1处(AB),在2处(D)
10.(try-catch-finally)有如下代码
public class TestFinally {
public static void main(String[] args) {
System.out.println(ma());
}
public static int ma() {
int b;
b = 0;// 读入b
try {
int n = 100;
return n / b;
} catch (Exception e) {
return 10;
} finally {
return 100;
}
}
}
//在ma中,当读入的b为100时,输出结果为(100),当读入的b为0时,输出结果为(100)。
12.(方法覆盖)
改正如下:
import java.io.*;
public class Test12 {
public static void main(String[] args) {
}
}
class MySuper {
public void m() throws IOException {
}
}
class MySub extends MySuper {
public void m() throws EOFException {
}
}
class MySub2 extends MySuper {
public void m() throws FileNotFoundException {
}
}
//EOFException和FileNotFoundException均为IOException的直接子类