java中的异常处理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中的异常处理相关的知识,希望对你有一定的参考价值。
计算机语言程序开发中异常几乎是人人都会出现的问题,可以这么说:没有没有异常的程序!所以,计算机语言中异常处理是十分重要的一块,纠错能力也是每个程序员必须具备的基本能力!
异常处理的三种处理方式:
一、提前判断,避免错误。异常是可以用代码去解决的,分为运行时异常和编译时异常。对于处理异常,通常可以采用这种方式,也是处理异常最优先的考虑方式。
二、try-catch-finally(处理异常)。
语法:1.try内声明的变量,类似于局部变量,出了try{}语句,就不能被调用。2.catch语句内部是对异常对象的处理语句,可以有多个catch语句,try中抛出的异常类对象从上往下去匹配catch中的异常类的类型, 一旦满足就执行catch中的代码。执行完,就跳出其后的多条catch语句,相当于if-else执行了某一条catch,其他的catch就不执行了。3.finally是可选的。直接去执行finally(如果有finally的话)。finally中存放的是一定会被执行的代码,不管try中、catch中是否仍有异常未被处理,finally是一定会被执行的语句(代码级别只有System.exit(0);可以阻止),即使是语句前有retrun或者break仍然会被执行,再返回retrun。4.如果异常处理了,那么其后的代码继续执行。若catch中多个异常类型是"并列"关系,孰上孰下都可以。 若catch中多个异常类型是"包含"关系,须将子类放在父类的上面,进行处理。否则报错!同时try-catch是可以嵌套的。
三、抛异常---不能解决,抛出给调用者解决---throws和throw。
当可能出现的异常我们不能够解决需要调用者自身调用时解决的时候我们就需要用到抛异常。
throw---(针对对象的做法)抛出一个异常,可以是系统定义的,也可以是自己定义的。含义:throw后面是一句执行代码,一旦被执行就会正的发生一个异常被抛出的动作。如果throws后面跟的是一个运行时异常,就不需要要求方法的声明部分使用throws;后面跟一个非运行时异常时就要求方法的声明部分throws加上异常类。当父类的方法抛出的异常与子类抛出的异常必须有继承关系。
throws---(针对一个方法抛出的异常)声明异常。抛出一个异常,可以是系统定义的,也可以是自己定义的。在类的声明中,写在方法的声明部分,throws后面也可以跟上一个或多个异类名。throws不是执行代码,警告调用者可能报错。子类重写父类的方法时不能比父类抛出的异常多(多指的是异常范围大小);
自定义异常:我们在工作的时候,项目是分模块或者分功能开发的 ,基本不会你一个人开发一整个项目,这个时候使用自定义异常类就统一了对外异常展示的方式。自定义异常语法的四大关键:
1.一定要继承Exception或者是Throwable,否则就根本不是异常类型。
2.一定要有一个带Exception或者是Throwable的带参构造方法,这样才能把各种异对象当中的数据装入到自定义异常对象上(调用使用super(ex))。
3.一定要有一个带String的带参构造方法,这样才能实现业务异常的封装;
4.添加自定义异常自身的特有处理方法(比如打印日志等等)。
以上是关于java中的异常处理的主要内容,如果未能解决你的问题,请参考以下文章