Java异常

2021/7/25 17:07:56

本文主要是介绍Java异常,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

什么是异常?

异常就是指的程序在运行过程中,发生的不正常(用户操作不当、服务终止、程序BUG……)的程序无法正常运作的情况

异常处理的目的:为了提高程序的稳定性和健壮性,让程序正常的运作下去

java如何处理异常:

  • 抓捕异常(推荐):
    尝试着抓到对应的异常,在针对具体问题,具体处理
  • 抛出异常
捕获异常: try-catch
public class Test2 {
    public static void main(String[] args) {
        //实现一个功能:键盘录入两个数,求商:
        try{
            Scanner sc = new Scanner(System.in);
            System.out.println("请录入第一个数:");
            int num1 = sc.nextInt();
            System.out.println("请录入第二个数:");
            int num2 = sc.nextInt();
            System.out.println("商:"+num1/num2);
        }catch(Exception ex){
            System.out.println("对不起,程序出现异常!");
        }
        System.out.println("----谢谢你使用计算器");

    }
}

把可能出现异常的代码放入try代码块中,然后将异常封装为对象,被catch后面的()中的那个异常对象接收,接收以后:执行catch后面的{}里面的代码,然后try-catch后面的代码,该怎么执行就怎么执行。

try中没有异常,catch中代码不执行

try中有异常,catch进行捕获

如果catch中异常类型和你出的异常类型匹配的话:走catch中的代码进行捕获
如果catch中异常类型和你出的异常类型不匹配的话:不走catch中的代码没有捕获成功,程序相当于遇到异常了

try中如果出现异常,然后用catch捕获成功的话,那么try中后续的代码是不会执行的

如果catch捕获异常成功,那么try-catch后面的代码该执行还是执行没有影响

  • try中出现异常以后,将异常类型跟catch后面的类型依次比较,按照代码的顺序进行比对,执行第一个与异常类型匹配的catch语句
  • 一旦执行其中一条catch语句之后,后面的catch语句就会被忽略了!
  • 在安排catch语句的顺序的时候,一般会将特殊异常放在前面(并列),一般化的异常放在后面。
    先写子类异常,再写父类异常
try{
}catch(){
    
}catch(){
    
}....
    

java异常类的继承关系

Throwable - >Error(错误)

Throwable - >Exception(异常)- >…

Exception 分为RuntimeException、非运行时异常、IOException

​ 当异常被捕获到是,异常对象就会自动创建
​ e.getMessage() // 输出异常信息
​ e.printStackTrace() // 在控制台上打印输出异常的错误情况(调用栈情况)

自定义异常

自定义的异常可以继承:运行时异常也可以继承检查异常:

如果继承的是运行时异常,那么在使用的时候无需额外处理
如果继承的是检查异常,那么使用的时候需要try-catch捕获或者throws向上抛

throw和throws的区别:

(1)位置不同:
throw:方法内部
throws: 方法的签名处,方法的声明处

(2)内容不同:
throw+异常对象(检查异常,运行时异常)
throws+异常的类型(可以多个类型,用,拼接)

(3)作用不同:
throw:异常出现的源头,制造异常。
throws:在方法的声明处,告诉方法的调用者,这个方法中可能会出现我声明的这些异常。然后调用者对这个异常进行处理:
要么自己处理要么再继续向外抛出异常

异常的分类:

运行时异常:继承了RuntimeException的异常
特点是:只有在运行时,才能知道是否会有异常
非运行时异常(编译型异常):
特点是:在编译时,就会报错,必须处理!!!

finally关键字:

特点:不管是否存在异常,finally部分必须要执行

System.exit(0);//终止当前的虚拟机执行,只有这个可以强制不执行finally



这篇关于Java异常的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程