• java异常


    一.什么是异常

    程序在运行过程中出现了问题,导致程序不能正确结束

    二.产生异常的原因     

         1 语法错误(编译不能通过)

         2 逻辑错误(最可怕。能运行,1+1 = 3)

         3 运行时错误,异常。(有时代码是没有问题。使用的人出问题了)

    三.异常的分类

           在java中针对异常处理进行设置。提供大量的异常类。

         每个异常类对应了程序运行时发生的一种错误情况。

            (1)异常分为两种类型:

    Throwable是所有异常的父类,

    它的子类是Exception,Error,

    Exception 异常类    常说的异常父类,表示所有的异常,是程序中只负责

    Error为程序外部错误,程序本身不可控制。错误类  运行时方式的重大错误

    (2)Exception 分为两种类

    在Exception类中分成二大阵营。

    1 RuntimeException的子类:非检查异常:是在程序中不用强制处理的异常类。

      不是代码的方式回避,就是只能修改源文件。运行异常RuntimeException 所有运行时异常都是RuntimeException的子类

         2 非RuntimeException的子类:检查异常:是在程序中必须处理的异常类。

    四常见的运行时异常有:

    ArrayIndexOutOfBoundsException 数组下标越界异常,

    NullPointerException 空指针异常,

    ArithmeticException 算术为0异常

    ,NumberFormatException 数字格式异常,

    ClassCastException 类型转换异常

    运行时异常不是需要必须处理的

    检查异常 CheckedException所有的检查异常都是Exception的子类

    五.常见的检查异常

    FileNotFoundException 文件找不到异常 

    IOException 文件流异常

     ClassNotFoundException 类找不到异常

     SQLException 数据库异常

    检查异常不是需要必须处理的

     六定位异常抛出的位置

    寻找第一句自己编写的代码

    七处理异常的方法

    异常处理的方法一共有两种:

    throws 和 throw 抛出异常                                    Try  catch   finally 捕获异常

    第一种方法           throws 和 throw 抛出异常

    throw 抛出异常,需要抛出一个异常对象,在方法中

     throws 声明异常,在方法定义的时候,当方法中抛出的是运行时异常该方法可以声明异常也可以不声明异常

     如果方法中抛出了检查异常,则必须在方法中做出异常的声明

     如果方法中抛出了多个检查异常 需要在声明的时候可以直接声明多个异常也可以直接声明一个父类异常(Exception)

    抛出异常声明在方法上:

    1. 如果创建一个异常对象进行抛出,我们需要在函数中使用 throw new异常类型,
    2. 如果函数中抛出一个异常对象,需要在方法上进行声明异常类型
    3. 在函数中如果有thorw,那么throw下面的代码将不会被执行,和函数中return差不多
    4. 一个函数中抛出异常,把异常抛给了调用者,在调用者函数中就会存在同一个异常类型,可以选择抛出可以选择处理异常

    第二张方法          Try  catch   finally 捕获异常

    (1)异常处理的第二种方法

    try 捕获异常         catch 处理异常          finally 必须执行

    (2)try{  程序代码; }catch(Exception ex)

    { 1:抛出,2:打印异常信息,3:记录日志信息 }

    finally{ 释放资源 }

    说明:

    其中catch是可以省略的,finally也是可以省略的但两不能同时省略(try 不能单独存在)

    finally 只能出现一次,catch可以出现多次

    异常处理的时候方法返回值问题

    如果在方法中存在try{} catch finally ,且finally中存在return 则方法不论是否存在异常都会返回finally中值

    如果try存在return ,catch中存在return try外面不能出现return 子句

    捕获异常特点:

    1. try中出现异常代码的下面所有的代码不会被执行
    2. try中出现异常代码的上面代码可以正常执行
    3. try中出现多个异常时,我们要对应着多个catch处理,也可以使用多态只用一个catch(Exception e)
    4. 处理异常,可以从上往下处理异常类的大小是从小到大,但是不能从大到小

    八   throw和throws区别

    1.throw是函数体中使用,而throws是在函数声明上使用的

    2.throw后面跟着的是异常对象,而throws跟着的是异常类型

    3.throw后面只能跟一个异常对象,throws后面可以声明多个异常类型

    九  自定义异常

    在java中不同的异常类型,有指定的异常来表示,sun公司给写好了好多异常类

    Sun公司提供异常有可能不能满足于我们,生活中我们会遇到各种异常情况,比如没有网络,吃饭忘记带钱,恋爱分手。需要我们根据特殊情况进行定义一个异常出来。

    如果定义一个检查异常只需要继承 Exception就可以

    如果定义一个运行时异常需要继承RuntimeException就可以

  • 相关阅读:
    【初学不要怕】python是数据分析的一把利器(详解)
    282_WEB_对于注册、数据data_callback中进行处理的理解
    在centos上使用pyenv管理python及虚拟环境
    MFC Windows 程序设计[132]之打开按钮的启用与禁用
    【黄啊码】用PHP7性能居然是5.6的三倍?赶紧看看它有什么新特性-续
    python3和pip源码安装【5步快速搞定】
    分词工具使用系列——sentencepiece使用
    Oracle之RMAN联机和脱机备份(二)
    【PAT甲级】1024 Palindromic Number
    学成在线第二天-查询课程、查询课程分类、新增课程接口实现以及跨域的处理思路和全局异常处理的使用以及面试题
  • 原文地址:https://blog.csdn.net/weixin_44793200/article/details/105789167