java中异常中的注意事项

1、 子类继承父类的时候的注意事项 
  1)子类重写父类的方法的时候,子类的方法的抛出的异常必须要么是父类的方法异常一样,要么是父类方法异常的子类

  2)子类重写父类方法的时候,如果父类中的这个方法没有抛出异常,那么子类重写的这个方法也不能抛出异常,只能try...catch

                        3)如果父类抛出了多个异常,子类重写父类时,只能抛出相同的异常或者是他的子集,子类不能抛出父类没有的异常

2、如何使用异常处理

                        1)原则:如果该功能内部可以将问题处理,用try,如果处理不了,交由调用者处理,这时用throws

                                2) 区别: 后续程序需要继续运行就try后续程序不需要继续运行就throws

                                3)如果JDK没有提供对应的异常,需要自定义异常。

3、自定义异常

package Exception_customise;


import java.util.Scanner;


/*
 * 自定义异常类,两种方式
 * 1)自定义一个类,这个继承自Exception
 * 2)继承RuntimeException 
 * 
 * 
 * */


//方式1:自定义一个类,这个类继承自Exception


//需求:检查学生成绩是否合格,0-100为合格,否则为不合格
public class Exception_customise_1 {
//throws代表可能发生的异常
public static void main(String[] args) throws Exception{
//创建键盘录入
Scanner sc = new Scanner(System.in);
//提醒用户录入
System.out.println("请输入学生成绩");
//接收数据
int number = sc.nextInt();
//创建学生对象
Student s = new Student();
s.check(number);
}
}
 class MyException extends Exception{
//定义有一个判断方法
public MyException(){
super();
}
//定义获取异常的方法
public MyException(String message){
super();
}
}
//检验学生成绩
 class Student{
public void check(int number)throws MyException{
if(number < 0 | number > 100){
throw new MyException("该学生成绩不符合规范");
}
else {
System.out.println("该学生成绩没有问题");
}
}
}

方式2:

package Exception_extend;


/*
 * 异常中的注意事项:
 * 子类继承父类的时候的注意事项 
 * 1)子类重写父类的方法的时候,子类的方法的抛出的异常必须要么是父类的方法异常一样,要么是父类方法异常的子类
 * 2)子类重写父类方法的时候,如果父类中的这个方法没有抛出异常,那么子类重写的这个方法也不能抛出异常,只能try...catch
 *  3)如果父类抛出了多个异常,子类重写父类时,只能抛出相同的异常或者是他的子集,子类不能抛出父类没有的异常
 * */
public class Exception_extend_attentions {


// 定义父类
class fu {
// 简化为抛出大异常
public void show() throws Exception {


}


public void method() throws Exception {


}
}


// 定义子类
class zi extends fu {
// 重写父类
@Override
public void show() throws Exception {


super.show();
}


@Override
public void method() throws Exception {


super.method();
try {
int[] x = { 1, 2, 3, 4, 5 };
System.out.println(x[5]);
} catch (Exception e) {
e.getMessage();
}
}
}
}

猜你喜欢

转载自blog.csdn.net/qq_42077125/article/details/80355484