Java-异常的简单介绍

在运行代码的时候经常会遇到爆红,对于没学习过异常的新手来说真的是一个折磨,所以学习异常真的很有必要~~

一、什么是异常

程序在运行时,可能由于外部系统的条件变更而导致程序可能会出错的情况。(也就是我们所熟知的爆红),例如:需要连接数据库但数据库未启动。
 

二、异常的体系结构

在这里插入图片描述
 

三、Throwable的描述

Throwable 是java语言中所有的错误和异常的超类,它有两个子类: ErrorException

Error:

代码层面解决不了的

Exception:

代码层面能够解决的,主要分为两种 -
 
CheckedException受检异常,必须使用 try-catch 或者throw和throws。

UnCheckedException不受检异常,主要由程序的逻辑引起的,具有不确定性,需要排查

四、异常处理

1、方法一: try - catch

捕获异常,用的最多且最实用
把有可能会出现异常的地方用try语句块包裹起来然后在catch语句块中编写要处理的逻辑代码

 try{
      double s = 10/0;
    }catch (Exception e){
      System.out.println("异常");
      e.printStackTrace();  // 自带输出错误信息的方法
    }

2、方法二:try - catch - finally

对于上面的进行了改进,不管是否发生异常,是否catch到相同的异常,都要输出finally语句块中的内容。
 
打个比方 : 不管今天是否炒菜,火都得关掉

try{
            double s = 10/0;
        }catch (Exception e){
            System.out.println("异常");
            e.printStackTrace();  // 自带输出错误信息的方法
        }finally {
            System.out.println("不管怎样我都输出");
        }

3、方法三 : throw和throws

如果try中使用了if语句那么当语句不满足时将不会再执行catch中的语句,所以这个时候需要使用throw抛出异常,处理不了的异常就把它抛出去
 
语法: throw new 异常类型([异常信息])

在这里插入图片描述
 

五、异常分析

这里直接看图片
在这里插入图片描述
 
注意 : 异常是向上传递的
在这里插入图片描述
 

六、自定义异常

1、创建异常

在这里插入图片描述
 

2、使用异常

在这里插入图片描述

七、各类异常的简短介绍

ClassCastException
两个类型间转换不兼容
1.一个类是数字类,而由于误操作,错误的将数字类向数字类转换改写成了数字类向字符串类的转换,从而产生了异常。
2.大部分原因是因为强制转换或者是SQL映射时发生了这个异常。

ArithmeticException
异常的运算条件
没有对0进行考虑,因为在进行一些算数运算的时候除数是不可为0的,此时就该用条件语句判断一下除数是否为0,否则就会抛出该异常。

IllegalArgumentException
不合法的参数异常
非法数据异常
或者无法通过一个标识或基本扩展转换将指定值转换为基础数组的指定类型
如果位置描述为空
如果指定对象参数不是一个数组

IllegalStateException
非法的状态
在进行ssh框架整合的时候,引入struts测试的action的时候出现的问题

IndexOutOfBoundsException
数组越界异常
索引超出边界异常,比如list中没有数据 你去取list[0] 没有这条数据 就汇报这个错误
或者说你list.size()是5 你取list[6] 也会报这个错误

NoSuchElementException
没有这样的元素异常。
出现这个异常的原因之一是因为线程访问越界

NullPointerException
空指针异常俗称NPE。
如果一个对象为null ,调用其方法或访问其字段就会产生

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值