小比特笔记--java.异常

本文详细介绍了Java中的异常处理机制,包括Exception类作为所有异常的父类,如何使用catch捕获异常,finally块的善后工作,try-with-resources语法,异常类型的匹配原则,以及如何自定义异常。特别强调了RuntimeException及其子类,受查异常与非受查异常的区别,并提供了处理和声明异常的实例。
摘要由CSDN通过智能技术生成

异常:程序在运行时发生错误。

 

异常基本语法

我们发现 , 一旦 try 中出现异常 , 那么 try 代码块中的程序就不会继续执行 , 而是交给 catch 中的代码来执行. catch 执 行完毕会继续往下执行
try中有可能出现的异常
/**
 * 即便是有异常我们也照样执行输出了。
 * 有异常的部分在try中,处理异常的部分在catch中
 */
public class ExceptionTest {
    public static void main(String[] args) {
        int[] data = {1, 2, 3};
        System.out.println("before");
        try {
            // 可能会出现异常的地方
            System.out.println(data[100]);
        }catch (ArrayIndexOutOfBoundsException e){
            //打印出现异常调用的栈
            e.printStackTrace();
            System.out.println("异常产生了");
        }
        System.out.println("after");
    }
}

异常的种类有很多,我们要根据不同的业务场景来决定;

对于比较严重的场景应该让程序直接崩溃;

其他的场景可以选择记录错误日志,通过监控报警程序及时通知,可恢复的场景选择重试;

关于---调用栈

方法之间存在相互的调用关系。

在JVM中有一块内存空间称为“虚拟机栈”,专门为存储方法之间的调用关系,当代吗中出现异常

,我们可以调用e这个对象的printStackTrace()就可以打印异常位置和原因。

e.printStackTrace();

查看出现异常代码的调用栈。

“e”就是异常对象,e前面是类名称,起个什么名字都一样。

/**
 * catch只能处理对应种类的异常
 * 此时的catch不能捕获空指针异常,因为异常类型不匹配
 */
public 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值