异常(Exception )是指程序运行过程当中出现的例外情况
Error 和 Exception 的区别
- Error是指由于底层硬件环境或者系统原因出现的,无法通过代码解决问题
- Exception是指运行过程当中出现的异常情况
运行时异常和非运行时异常的区别
- 非运行时异常在编译的时候就要求给出明确的处理方案,否则编译都无法通过
- 运行时异常 编译时不需要进行任何处理,直接到运行时体现出来
常见的运行时异常
异常(Exception) | 说明 |
---|---|
ArithmeticException | 算术异常 |
NegativeArraySizeException | 负数数组大小异常 |
ArrayIndexOutOfBoundsException | 数组索引值超出边界异常 |
StringIndexOutOfBoundsException | 字符串索引值超出边界异常 |
NumberFormatException | 数字格式异常 |
NullPointerException | 空指针异常 |
ClassCastException | 类造型异常 |
IllegalArgumentException | 非法参数异常 |
IndexOutOfBoundsException | 索引值超出边界异常 |
IllegalStateException | 非法状态异常 |
ConcurrentModificationException | 并发修改异常 |
- 非运行时异常 不做处理编译都无法通过
- 程序一旦出现异常 之后的代码就都不执行了
如何处理异常
抛还上级(throws)
//运行时异常
throw new RuntimeException("错误提示");
自行处理(捕获异常)
try{
//可能出现异常的语句;
}catch(Exception e){ //异常类型,Exception可以捕获所有异常
//异常处理,通常打印异常信息
}finally{
//此处代码无论是否异常,都会执行,哪怕出现异常也会执行
}
- 一个try 后面可以多个catch,但是前面捕获的异常范围不能大于后面的范围(因为没有意义)
- JDK7.0开始 一个catch可以捕获多种不同异常,用"|"隔开
如何自定义异常
继承Exception或者RuntimeException,构造方法当中可以使用super("这里填写异常的简要描述");
主动创建异常
- throw : 用在方法体当中,在没有异常出现的场景下主动制造异常出现
- throws : 用在方法签名的最后 本方法当中出现指定种类的异常本方法不做处理,将异常抛给调用该方法的方法
© 版权声明
非商业转载或引用请标注本文链接,商业转载或引用请联系站长
部分文章内容可能来自互联网,如有侵权,请通过邮件联系
部分文章内容可能来自互联网,如有侵权,请通过邮件联系
THE END
暂无评论内容