Java Exception 和Error详解

       一、 基本理念

        Java的基本理念是“结构不佳的代码不能运行”。发现错误的理想时机是编译阶段,也就是在试图运行程序之前,然后编译期并不能找出所有的错误,余下的问题必须在运行期间解决。改进的错误恢复机制是提供代码健壮性的最强有力的方式。

       二、 Throwable

          Throwable这个Java类被用来表示任何可以作为异常被抛出的类。下面是这个类及其子类的导出图。

    三、详解Error、 Exception 

    

     在Java语言中,将程序执行中发生的不正常情况称为“异常”(开发过程中的语法错误和逻辑错误不是异常),  Java程序在执行过程中所发生的异常事件可分为两类:Error和Exception

    1、Error
        Error类出错是指  Java虚拟机无法解决的严重问题。如:JVM系统内部错误、资源耗尽等严重情况。一般不编写针对性的代码进行处理。 应用程序不应该抛出这种类型的对象(一般是由虚拟机抛出).
    2、Exception

    Exception类错误是指其它因编程错误或偶然的外在因素导致的一般性问题,可以使用针对性的代码进行处理。例如:       空指针访问、  试图读取不存在的文件、 网络连接中断等。捕获错误最理想的是在编译期间,但有的错误只有在运行时才会发生。比如:除数为0,数组下标越界等。异常类分为 编译时异常和运行时异常。
    ①运行时异常(unchecked)。

       运行时异常 是指编译器不要求强制处置的异常。一般是指编程时的逻辑错误,是程序员应该积极避免其出现的异常。即使没有使用try和catch捕获,Java自己也能捕获,并且编译通过  ( 但运行时会发生异常使得程序运行终止 ),被Java虚拟机抛出。

        常见的运行时异常:

             IndexOutOfBoundsException(下标越界异常) 
                NullPointerException(空指针异常) 
                NumberFormatException (String转换为指定的数字类型异常) 
                ArithmeticException -(算术运算异常 如除数为0) 
                ArrayStoreException - (向数组中存放与声明类型不兼容对象异常) 

                SecurityException -(安全异常) 

    ②编译时异常(checked 
        是指编译器要求必须处置的异常。即程序在运行时由于外界因素造成的一般性异常。编译器要求java程序必须捕获或声明所有编译时异常。 对于这类异常,如果程序不处理,可能会带来意想不到的结果。 经常遇到的IO异常,以及SQL异常都是这种异常
        常见的编译时异常:
            FileNotFoundException(文件未找到异常。) 
               IOException(操作输入流和输出流时可能出现的异常。) 
               EOFException (文件已结束异常)
                java.lang.ClassNotFoundException
                java.lang.InterruptedException

                java.sql.SQLException

    四、关于异常的处理

      1、 Java提供的是异常处理的抓抛模型

       2、抛出异常 ,使用throws关键字

                public void readFile() throws IOException {

                        FileInputStream in=new FileInputStream("myfile.txt");

                }

参考链接:

    https://blog.csdn.net/rainminism/article/details/51208572

    https://blog.csdn.net/m0_37531231/article/details/79502778

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值