在千锋学习的第二十七天
一点一点积累,加油!
今天学习了异常的自定义异常和方法覆盖
自定义异常:需要继承Exception 或者Exception 的子类 或者RuntimeException
类中需要提供两种构造方法
无参构造 和String message 有参构造
方法覆盖:
1父类中声明了 方法,子类中重写后可声明也可不声明
2 类名 参数和返回值必须相同
3 父类中没有声明异常,子类也不能声明异常
4 父类中声明了异常,子类可以声明和父类相同的或者子类 子类可以声明多个父类异常的子类
习题5 6
package com.lichenchen.ti;
public class TestMyException {
public static void main(String[] args) {
int n;
n=2;
try{
m(n);
}catch (MyException1 ex1){
ex1.printStackTrace();
}catch (MyException2 ex2){
System.out.println(ex2.getMessage());
throw new MyException2();
}
}
public static void m(int n)throws MyException1{
if(n==1){
throw new MyException1("n==1");
}else{
throw new 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);
}
}
8
package com.lichenchen.ti;
import java.io.IOException;
public class Super1 {
public void ma() throws IOException{}
}
interface IA{
void mb();
}
public class My extends Super1 implements IA{
public void ma()//1{}
public void mb()//2{}
}
A throws java,io.IOExcept ion
B throws java.io.FileNotFoundException java.io.EOFException
C throws java.sql.SQLWxception
D 不能抛出异常
//1 选A B
//2 选D
12
package com.lichenchen.ti;
import java.io.*;
public class MySuper3 {
public void m() throws IOException{}
}
class MySub2 extends MySuper3{
public void m() throws EOFException{}
}
class MySub5 extends MySub2{
public void m() throws EOFException{}//FileNotFoundException{}
}
FileNotFoundException不是EOFException的子类 所以改为EOFException