美文网首页
Java_异常

Java_异常

作者: 老北瓜 | 来源:发表于2020-04-08 14:29 被阅读0次

概念 : 程序在执行过程中,出现的非正常的情况,最终会导致JVM的非正常停止。
在java中,异常本身就是一个类,产生的异常的过程是创建异常对象并抛出一个异常对象,java处理异常的方式是中断处理。

异常体系 Throwable

Error(不能处理,只能尽量避免,只有修改掉异常,程序才能继续执行)
|------ 内存溢出 , 只能修改源代码了
Exception (使用不当导致,可以避免,把异常处理掉,程序可以继续执行)
|----- 编译期异常,编译就出现问题
|----- RuntimeException 运行期异常,java程序运行过程中出现的问题

处理异常的方法 有 throw Exception 和 try{} catch()

异常产生的过程: 出现异常的地方被JVM检测出来,会根据异常产生的原因创建一个异常对象,包含了异常的内容,原因和位置;如果没有处理异常的逻辑,jvm把异常对象向上抛出给调用者来处理( main() ), 如果调用者也没有处理异常的逻辑,向上抛出给jvm处理,jvm接收到异常后,把异常对象打印在控制台,中断当前的运行的程序。

处理异常的关键字
throw : 可以在指定的方法中抛出指定的异常
必须卸载方法的内部
后边new 的对象必须是 Exception 或其子类
抛出指定的异常对象,我们必须处理, RuntimeException 可以不处理
throws: 当方法内部抛出异常的时候,必须处理这个异常对象, 可以使用throws处理异常对象,(RuntimeException除外)会把异常对象抛出给方法的调用者处理,最终交给jvm


image.png

在定义方法的地方添加了 throws FileNotFoundException

捕获异常 try catch 自己来处理的异常

 public static void main(String[] args) {
        try {
            method("a.tx");
        } catch (FileNotFoundException e) {
            System.out.println("自己处理异常 ");
        }

    }
    private static void method(String file) throws FileNotFoundException {
        if (!file.endsWith(".txt")) {
            throw new FileNotFoundException("文件后缀名不对");
        }
    }

Throwable 类中定义了三个异常处理的方法
(Exception e) e.getMessage()
e.toString()
e.printStackTrace();

finally 代码块
不管异常是否发生都要执行的代码 写在 finally{ } 代码块中。
一般用于资源释放(资源回收,比如 io流中)
如果finally 中有return , 返回的结果永远是 finally 中的结果,应该避免这种情况

多个异常的捕获
一个 try 对应多个catch , 一次捕获,多次处理

*** 自定义异常类***
继承 Exception 或者 RuntimeException
重写一个空构造方法 和一个 带异常信息的构造方法

public class MyException extends  Exception {

    public MyException() {
    }

    public MyException(String message) {
        super(message);
    }
}

模拟注册操作,如果用户名已存在,抛出异常

相关文章

  • Java_异常

    运行时异常 例如数组越界,继承与RuntimeException,在编译期间不是必须要捕获的异常. 上面是try....

  • Java_异常

    概念 : 程序在执行过程中,出现的非正常的情况,最终会导致JVM的非正常停止。在java中,异常本身就是一个类,产...

  • Java书籍资料整理

    http://en.wikipedia.org/wiki/Template:Java_%28software_pl...

  • 雪花算法

    雪花算法的原理和实现Java_雨夜青草的博客-CSDN博客_雪花算法 64 = 1 41 10 12

  • alibaba-nacos-config 阿里的nacos

    参见:SpringBoot使用Nacos作为配置中心服务和服务注册中心_java_牧竹子-CSDN博客 手册参见:...

  • java_多线程

    java_多线程 线程创建方式;join用法; sleep和wait区别; 线程安全和不安全的java集合; St...

  • Java 调用jni方法

    两种实现方式 Java_包名类名方法名 RegisterNatives方法 native 方法如下 第一种方式:在...

  • java_集合

    参考https://www.cnblogs.com/NextNight/p/6972172.html 关系图 Ha...

  • JAVA_代理

    代理是一种常用的设计模式,其目的就是为其他对象提供一个代理以控制对某个对象的访问。通过代理,可以实现对目标对象的间...

  • java_容器

    能根据情况选择适合的容器 知道每一种容器的:新建、存数据、改数据、取单个数据、取全部数据 存单个值的容器3种,存键...

网友评论

      本文标题:Java_异常

      本文链接:https://www.haomeiwen.com/subject/znjzphtx.html