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

Java异常 (Exception)以及异常的处理

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

Java异常 (Exception)以及异常的处理

异常:
    一.概述
        使用计算机语言进行项目开发的过程中,即使程序员把代码写的尽善尽美,在系统运行过程中仍然会遇到一些问题,因为
        很多问题不是靠代码能够避免的,比如:客户输入的数据格式、读取的文件是否存在、网络是否始终保持通畅等等

    二.异常
        1. 定义:
            在Java语言中,将程序执行中发生的不正常情况称为异常
        2. 分类:
            Error:(B1:demo_01)
                   Java虚拟机无法解决的严重问题。例如:JVM系统内部错误、资源耗尽等严重情况,
                   StackOverflowError 和 OutOfMemoryError。一般不编写针对性的代码进行处理
            Exception:其他因编程错误或偶然的外在因素导致的一般性问题,可以使用针对性的代码进行处理
                  分类:非受检异常
                       受检异常

    三.Throwable (B1:demo_02)
        1.java.lang.Throwable
            |-----java.lang.Error:一般不编写针对性的代码进行处理
            |-----java.lang.Exception:可以进行异常处理
                |-----编译时的异常(checked)受检异常
                    |-----IOException
                        |-----FileNotFoundException
                    |-----ClassNotFoundException
                |-----运行时的异常(unchecked)非受检异常
                    |-----NullPointerException
                    |-----ArrayIndexOutOfBoundsException
                    |-----ClassCastException
                    |-----NumberFormatException
                    |-----InputMismatchException
                    |-----ArithmeticException

    四.异常的处理

        在编写程序的时候,经常要在可能出现错误的地方加上检测的代码
            Java采用的异常处理机制,是将异常处理的程序代码集中在一起与正常的程序代码分开,使得程序简洁、优雅、有益于维护
            1.try-catch-finally:解决异常(B1:demo_03) 可以catch多个异常,finally可以省略
                1.1 try{ }catch(异常类型1 变量名1){处理异常的方式1}catch(异常类型2 变量名2){处理异常的方式2}finally{一定会执行的代码}
                1.2 在没有写finally的时候一旦try中的异常匹配到来某个catch,就进入catch异常处理,一旦处理完成,就跳出当前的try-catch,继续执行后面的代码
                1.3 catch中的异常类型,如果没有父子类关系,那么异常类型的排序没有影响,如果满足父子类关系,那么子类一定要排在父类的前面
                1.4 catch里 变量名.getMessage() / 变量名.printStackTrace()
                1.5 在try结构中声明的变量,在出了try以后就不能被调用了,如果需要用的话可以先定义到try结构外面
                1.6 使用try-catch-finally处理编译时异常,使得程序在编译时不再报错,但是运行时仍可能报错
                1.7 finally中声明的是一定会被执行的代码,例如try中有return、catch中也有异常也不影响finally里代码的执行
                1.8 什么时候才会写代码到finally里:需要自己关闭的物理连接(数据库连接、输入输出流、网络编程Socket)需要声明在finall
            2.throws+异常类型:上报异常(B1:demo_04)
                2.1 throws + 异常类型
                2.2 一旦方法体执行,遇到异常后就会在代码处生成对应异常类对象,此对象匹配到throws的异常类型后就会抛出异常对象。异常代码后面的代码就不再执行
                2.3 throws只是将异常抛给方法的调用者,并没有真正的将异常处理
        抓抛模型:
            1.抛:程序在执行的过程中,一旦出现异常,就会在异常代码处生成一个对应异常类的对象,并将此对象抛出,一旦抛出对象后,其后的代码就不再运行
                关于异常对象的产生:
                    ① 系统自动生成的异常对象
                    ② 手动的生成一个异常对象,并抛出(throw)
            2.抓:可以理解为异常的处理方式:① try-catch-finally ② throws
        自定义异常;
            1.继承于现有的异常结构:RuntimeException、Exception
            2.提供全局变量:serialVersionUID
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/873892.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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