Java的异常

异常

什么是异常

在计算机程序运行时,总是会出现错误

于是Java内置了一套异常处理机制,总是使用异常来表示错误。

异常是一种class,他的继承树如下(部分展示)

Object
Throwable
Error
OutOfMemoryError
Exception
RuntimeException
IOException
NullPointerException
IllegalArgumentException

由图可知Throwable是异常的根,且有两个体系:ErrorException

Error表示严重的错误,计算机对此无能为力:

  • OutOfMemoryError:内存耗尽
  • NoClassDefFoundError:无法加载某个Class
  • StackOverflowError:栈溢出

Exception是运行时候出现的错误,需要被捕获并且处理
某些异常是应用程序逻辑处理的一部分,应该捕获并处理(编译错误)。例如:

  • NumberFormatException:数值类型的格式错误
  • SocketException:读取网络失败
  • FileNotFoundException:未找到文件
    还有运行错误,比如:
  • NullPointerException
  • IndexOutOfBoundsException:数组索引越界

捕获异常

在java里面,使用try…catch语句能够捕获异常,在try{ . . . }语句中放入可能报错的语句,然后由catch语句捕获异常。

多catch语句

可以使用多个catch语句,自上而下的进行捕获,当找到对应的异常时就不再捕获

 try {
        process1();
    } catch (IOException e) {
        System.out.println(e);
    } catch (NumberFormatException e) {
        System.out.println(e);
    }

因此catch的顺序非常重要,必须是子类放在前面。

final语句

final语句可以保证无论发生什么异常,都会执行该语句

try {
        process1();
    } catch (IOException e) {
        System.out.println(e);
    } catch (NumberFormatException e) {
        System.out.println(e);
    }
    final{
    	System.out.println(END!);
    	}

抛出异常

如何抛出异常?

  • 创建某个Exception实例
  • throw抛出
void process2(String s) {
    if (s==null) {
        throw new NullPointerException();
    }
}

抛出的异常会交由方法的调用者去处理,如果没有则交由虚拟机处理。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值