1、Java中的异常处理机制
Java的异常处理是通过5个关键字来实现的:try catch finally throw throws

  • 捕获异常

try:执行可能产生异常的代码,catch:捕获异常,finally:无论是否发生异常,代码总能执行;

  • 抛出异常

throw:手动抛出异常;

  • 声明异常

throws:声明方法可能要抛出的各种异常;

(1)第一种情况

try{
   //代码段(此处不会产生异常)
}catch(异常类型 ex){
   //对异常进行处理的代码段
}    
//代码段(继续执行,如果不加try-catch语句则下面的代码段不执行!)

(2)第二种情况(多重catch语句)

try{
   //代码段(此处不会产生异常)
}catch(异常类型1 ex){
   //对异常进行处理的代码段
}catch(异常类型2 ex){
   //对异常进行处理的代码段
}catch(异常类型3 ex){
   //对异常进行处理的代码段
}      
//代码段
try {
    result = num1 / num2;
} catch (ArithmeticException e) {
    System.out.println("被除数不能为0!");
} catch (InputMismatchException e) {
    System.out.println("输入合法的整形值!");
} catch (Exception e) {
    System.out.println("出错了!");
}

注意:Exception类型应放在最后,它包括所有异常;如果放置在前面,后面的catch永远不会执行!

(3)第三种情况(catch语句嵌套)


//if-sles语句
try{
    try{
    }catch(){
        }
}catch(){
    try{
    }catch(){
        }
}

(4)第四种情况(try-catch-finally)

try{
    ...
}catch(){
    ...
}finally{
    //一定会执行
}

2、Java中的自定义异常

//定义异常类
public class ScoreException extends Exception {
    public ScoreException(){
        super("成绩必须介于0-100");
    }
}

//throw抛出系统异常实例或自定义异常实例
try {
    int age = input.nextInt();
    if(age<0 || age>100)
        throw new ScoreException();
    else 
        student.setAge(age);
} catch (Exception e) {
    System.out.println(e.getMessage());
}

3、Java中throw与throws的区别
1、throws只能出现在方法函数头,throw出现在函数体中;
2、throws表示出现异常的一种可能性,并不一定发生这种异常;

public void setAge(int age) throws ScoreException{
    this.age = age;
}


后记:
到今天为止,JavaSE部分算是系统的学习完了!

标签: none

评论已关闭