Java 类的概念与使用

异常的分类

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

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

在这里插入图片描述以上展示了自定义异常运行的结果

异常的定义

关键字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("自定义异常产生的原因");
    }
}

在这里插入图片描述

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("自定义异常产生的原因");
    }
}

在这里插入图片描述

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

在这里插入图片描述

原文地址:https://www.cnblogs.com/ryyy/p/14227858.html