JAVA--异常

39 篇文章 0 订阅
1 篇文章 0 订阅

(一)什么是异常

程序运行过程中发生的事件,该事件可以中断程序指令的正常执行流程。

(二)为什么需要异常

以下例子为例,当需要手动输入一个不合法的值时:

import java.util.*;

class TestA{
    public static void mian(String[] args){
        Scanner sc=new Scanner(System.in);
        int i=sc.nextlnt();
        System.out.println("i="+i);
    }
}
//通过键盘输入一个数字赋给整型变量
//若输入为字符型,则无法通过if等进行判断,Scanner无如同c语言中scanf的返回值进行判断
import java.util.*;
class TestA{
    public static void main(String[] args){
        Scanner sc=null;
        try{
            sc=new Scanner(System.in);
            int i=sc.nextlnt();
            System.out.println("i="+i);
        }
        catch(Exception e){
            System.out.println("程序异常,终止运行!\n");
        }
    }
}

(三)异常的处理机制

1、java程序运行出现问题时,系统会自动检测到错误,并立刻生成一个与该对线对应的异常对象;

2、然后把该异常对象提交到Java虚拟机;

3、Java虚拟机会自动寻找相应的处理代码来处理异常,如果没有找到,则程序终止;

4、程序员可以自己编写代码来捕捉可能出现异常的代码,并编写代码来处理异常。

(四)异常的分类

(五) 异常的处理方式和步骤

第一种:

try{
    可能出现异常的代码块;
    语句一;    //当语句一捕获到异常语句二永远不会执行
    语句二;
}
catch(异常类型名1 变量1){
    当产生括号内异常类型名1异常时的处理措施;
}
catch(异常类型名2 变量2){
    当产生括号内异常类型名2异常时的处理措施;
}
finally{
    无论是否捕获到异常都执行的语句;
}

第二种:

class A extends Exception{  //自定义一个异常
    public A(String name){
        super(name);
    }
}
class B{
    public void f() throws A{  //throws+异常类型名表示调用f方法时f方法可能抛出A类异常,建议调用者进行捕获处理
        throw new A();//抛出一个A类异常
    }
}
class TestC{
    public static void main(String[] args){
        B bb=new B();
        try{
            bb.f();
        }
        catch(Exception e){
            System.out.printf("程序出现异常!");
        }
    }
}
//其中throw A不表示f方法一定抛出A类异常
//throw A 不表示调用f方法时,必须要对异常进行捕获,如RuntimeException

(六)注意事项

1、catch有且只有一个被执行,可能一个都不被执行;

2、要先catch子类异常再catch父类异常;

3、catch之间不能存在其它代码;

4、重写方法的异常不能大于被重写方法的异常范围;

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值