
为避免浪费你的宝贵时间,请先浏览本文章目录:
1、Java异常结构体系
2、自定义异常
3、实战经验-使用异常还是错误返回值
01
—
Java异常结构体系

Throwable是Java异常机制的基类,从Throwable派生了两种类型。Error和Exceptoin。
Error:是由JVM产生的,程序不能控制,会直接导致程序死掉,不能继续往下运行。
Exceptoin:异常,主要分为了检查型异常和非检查型异常。
检查型异常:在编码过程中,IDE会提示捕获的异常。如: IOExcepion
非检查型异常:在编码过程中,可以忽略捕获的异常。如: ArrayIndexOutOfBoundsException
02
—
自定义异常
在项目中,为了适应特殊情况,有时候我们需要自定义异常
public class MyException extends RuntimeException{@Overridepublic String getMessage() {return "这个是我的自定义异常";}}
So Easy!!!
03
—
实战经验
异常会改变代码执行顺序吗?
案例一:
class Test{public static void main(String[] args) {try{new Test().test();}catch(MyException e){e.printStackTrace();}System.out.println("捕获异常后这里还执行了吗?"); // {1}}public void test() {System.out.println("马上抛出一个异常");throw new MyException();}}
捕获异常后,{1}处得代码继续执行。
案例二:
class Test{public static void main(String[] args) {new Test().test();System.out.println("捕获异常后这里还执行了吗?");// {1}}public void test() {System.out.println("马上抛出一个异常");throw new MyException();}}
很遗憾,如果未捕获异常,{1}将不在执行。
使用异常还是返回错误值?
那么在实际项目中,作为API应该是抛出异常,还是返回错误码呢? 下面提供几点自己的意见,当然可能与个人喜好有关系。
1、如果你提供得方法本身就是要返回一个对象,为了保证返回值的独立性,不需要在对象里面设置一个错误码,那么建议抛出异常。
2、如果你返回的是一个类似于int值,那么建议不要返回一个错误码,而是抛出异常,以防int值和错误码重合。
3、如果这种错误比较严重,那么建议使用异常,因为如果不捕获异常,会导致线程结束。
4、其余情况,可以使用错误码。
文中所有代码均可以在线下载:
https://gitee.com/wsyjiamian/JavaDiary.git
文章转载自程序员的日记本,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




