栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java-异常的简单介绍

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java-异常的简单介绍

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

文章目录
  • 一、什么是异常
  • 二、异常的体系结构
  • 三、Throwable的描述
  • 四、异常处理
    • 1、方法一: try - catch
    • 2、方法二:try - catch - finally
    • 3、方法三 : throw和throws
  • 五、异常分析
  • 六、自定义异常
    • 1、创建异常
    • 2、使用异常
  • 七、各类异常的简短介绍

一、什么是异常

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

二、异常的体系结构


 

三、Throwable的描述

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

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 ,调用其方法或访问其字段就会产生

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1036794.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号