暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Java实战-异常处理

程序员的日记本 2020-08-21
291


为避免浪费你的宝贵时间,请先浏览本文章目录:



1、Java异常结构体系

2、自定义异常

3、实战经验-使用异常还是错误返回值



01

Java异常结构体系




Throwable是Java异常机制的基类,从Throwable派生了两种类型。ErrorExceptoin


Error:是由JVM产生的,程序不能控制,会直接导致程序死掉,不能继续往下运行。

Exceptoin:异常,主要分为了检查型异常和非检查型异常。

  • 检查型异常:在编码过程中,IDE会提示捕获的异常。如: IOExcepion

  • 非检查型异常:在编码过程中,可以忽略捕获的异常。如: ArrayIndexOutOfBoundsException




02

自定义异常

在项目中,为了适应特殊情况,有时候我们需要自定义异常

public class MyException  extends RuntimeException{
@Override
public 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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论