欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JAVA异常处理

程序员文章站 2022-10-27 20:36:50
五、异常 异常概念总结: 练习一:异常的体系 问题: 1. 请描述异常的继承体系 2. 请描述你对错误(Error)的理解 3. 请描述你对异常(Expection的理解) 4. 请描述你对运行时异常(RuntimeException)的理解 答: 1. 异常继承体系为:异常的根类是 java.la ......

异常的分类

错误:
error 这是无法throw的问题,如内存溢出
异常:
Exception 编译期问题,可以throw或者try catch
RuntimeExeption 运行期间出现的问题,可以throw或者try catch

运行期异常的分类:
1、
运行期异常可以是由于数据逻辑错误产生,举例:空指针异常。如果没有提前定义,系统在识别异常后一定会中断程序。如果提前写try datch可以使程序继续运行。
2、
运行期异常是由程序员自定义的。比如提前预知了某个异常出现,在异常中添加注释方便排查问题。也可以是人为地定义一些正常的情况为异常,强制中断程序(说实话我实在想不通为什么不直接写return难道有人就是觉得红色字体比较好看???这里边有些是IOException等等都是有分类的,分类有什么用?不知道!!!)自定义exception以后不能再往下继续写代码了。
JAVA异常处理

JAVA异常处理以上展示了自定义异常运行的结果

异常的定义

关键字throw的用法
必须写在方法内部
必须是exception的子类
如果不是runtime exception必须在方法后面写throws或者try catch

相关方法:objects.requireNonNull可以判断是否制定元素为空并且抛出异常

throws
异常抛出。如果某个方法有“throws”小尾巴,那么调用这个方法的方法,最好是写个try catch,或者继续thows。如果在整个方法调用的过程中没有任何一个方法写try catch,到最后java就会进行中断处理。

try catch
注意,每个try可以有多个catch。如果每个方法里有多个异常,可以分别使用多个catch语句来捕获。如果这些异常之间存在子父类关系,必须把子类写在前面,父类写在后面。或者干脆就不要写子类,直接写父类。
最省事的方法就是写

catch (Exception e) 

这个语句会自动捕获所有的异常

三种打印异常的方法

有三种异常打印的方法,第一种是输出红色字体,第二和第三种本质上都是生成字符串,但是字符串附带的信息不同。

public class Lesson {
    public static void main(String[] args)
             {
                 try {
                     a();
                 } catch (Exception e) {
                     System.out.println("第一种打印异常的方法");
                     e.printStackTrace();
                     System.out.println("第二种打印异常的方法"+e.getMessage());
                     System.out.println("第三种打印异常的方法"+e.toString());
                 }
    }
    public static void a() throws Exception {
        System.out.println("程序开始");
        throw new Exception("自定义异常产生的原因");
    }
}

JAVA异常处理

gre

finally语句表示不管是否出现异常都要执行。实际上,只要你写在try语句结束后,就能实现这个效果。所以finally事实上仅仅用于处理IO流。该问题后边补充。证据如下。

public class Lesson {
    public static void main(String[] args)
             {
                 try {
                     a();
                 } catch (Exception e) {
                 }finally{
                     System.out.println("finally模块执行");
                 }
                 System.out.println("后续代码");
    }
    public static void a() throws Exception {
        throw new Exception("自定义异常产生的原因");
    }
}

JAVA异常处理

在try语句中定义的变量在finally中也无法应用

JAVA异常处理

本文地址:https://blog.csdn.net/a568353087/article/details/112068074

相关标签: java