【Java】异常(Exceptions)

本文介绍了Java异常处理机制,包括Throwable的分类、检查异常和运行时异常的区别,以及如何通过try-catch-finally和throw-throws进行异常处理。强调了具体明确、及早抛出、延迟捕获的异常处理原则,并探讨了异常链的概念,帮助程序员提升代码的健壮性。
摘要由CSDN通过智能技术生成
概念


  exception是“exceptional event”的缩写,是指执行程序中发生的事件,破坏了程序的正常执行流程。Java 异常处理机制使程序更加健壮易于调试,它可以告诉程序员三个问题:错误的类型、位置、原因,帮助程序员解决错误。


类别


  Throwable是Java所有异常类的顶级父类,只有这个类的对象(或者其子类对象)才能被异常处理机制识别,也就是说JVM或者throw语句抛出的异常必须是Throwable或者子类对象,catch语句处理的异常类也是如此。


这里写图片描述

  整体上来看,Java异常可以分为三类

  • 检查异常:除了Error、RuntimeException及其子类所表示的异常,其他都为检查异常,意味着编译器在编译源码时,会对此类异常的处理进行检查,如果没有做异常处理(try、catch、finally或者throws),编译无法通过。比如使用 java.io.FileReader 类读取指定文件,文件不存在会抛出 java.io.FileNotFoundException 异常,这个异常在编码时必须被处理。

  • 运行时异常:RuntimeException及其子类表示的异常,javac在编译时不会检查的异常,这类异常更多的是代码写的有问题,如除0错误ArithmeticException,这类异常应该修改代码,而不是使用异常处理器处理。

  • 错误:Error及其子类,代表了JVM本身的错误。错误不等于异常,不能被程序员通过代码处理。出现Error,程序通常无法恢复。

分析


  世界上没有完美的程序,每个程序员都不可以避免的遇到异常信息,或者说“报错”,那么如何分析异常信息就成为了关键,先来看一个简单数组下标越界的异常:

public class Test {
    public static void main(String args[]){    
        test3();
    }   
private static void test3() {
    int a[] = new int[2];
    System.out.println("a[3]:" + a[
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 58
    评论
评论 58
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值