• java异常处理


    异常:指程序出现了不正常的情况

    程序的异常分类:Throwable

      严重问题:Error

      问题:Exception

        编译时异常:不是RuntimeException的异常,必须处理,不处理编译就不能通过

        运行时异常:RuntimeException,不处理,原因是代码不够严谨,需要修改代码

    异常的处理:

    如果程序出现了问题,我们没有做出处理,最终jvm会做出默认的处理,把异常的名称,原因及出现的问题输出到控制台。

    我们自己处理:1、try...catch...finally      2、throws

    1、try...catch...finally

    try{
      //可能出现问题的代码
    }catch(Exception e){
      //针对异常的处理
    }catch(Exception e){
      //针对异常的处理
    }finally{
      //释放资源
    }

    如出现既有子类异常类,又有父类异常类,父类异常必须放在最后一个catch当中。一旦try里面的代码出现问题,jvm就会生成一个异常对象,然后将对象抛出,与catch里面的异常进行匹配。

    异常中的几个方法:

    String getMessage() :异常的消息字符串

    String toString():异常的简单信息描述

    void printStackTrace():获取异常类名和异常信息,以及异常出现的位置,把信息输出到控制台。

    2、throws

    有些时候我们没有权限去处理异常,或者处理不了,就不处理了,由调用者自行处理。这时可以用throws将异常抛出,throws必须写在方法的括号后面。

    格式:throws  异常类名1, 异常类名2

        public void method()throws Exception{
            //执行代码
        }

    调用该方法时,必须对异常进行处理,可以用try...catch处理。

    3、throws和throw的区别

    throws:

    • 用在方法声明后面,跟的是异常类名
    • 可以跟多个类名,用逗号隔开
    • 表示抛出异常,有该方法的调用者来处理
    • throws表示一种异常的可能性,并不一定出现异常

    throw:

    • 用在方法体内,跟的是异常对象
    • 只能跟一个异常对象
    • 表示抛出异常,有方法体内的语句进行处理
    • throw表示抛出异常,执行throw表示一定抛出了某种异常

    4、异常处理的原则:

    如果该功能内可以对问题进行处理,就用try,如果处理不了就用throws,交由调用者处理 

    区别:后面程序需要继续运行就用try

       后面程序不需要继续运行就用throws 

    5、finally

    被finally控制的语句一定会执行,但是特殊情况下:如果在finally执行之前,jvm退出了,将不能执行

    作用:用于释放资源

    6、自定义异常类

    自定义异常类必须继承Exception类或者RuntimeException类,通常还会有两个构造函数

    public class MyException extends Exception {
        public MyException(){}
        public MyException(String message){
            super(message);
        }
    }

    7、异常注意事项

    子类重写父类方法时,子类必须抛出相同的异常或父类异常的子异常

    如果父类抛出多个异常,子类重写父类是,只能抛出相同异常或是他的子集,不能抛出父类没有的异常

    如果父类没有抛出异常,子类方法绝不能抛出异常,若子类有异常需要处理,只能用try,不能用throws

  • 相关阅读:
    HTML中ID与NAME的区别
    三层架构的学习感悟(二)
    linux svn安装和配置,不结合apache
    _dopostback回发后台的局限
    ASP.NET 服务器端控件响应客户端事件
    linux centos 下面httpd支持的svn 服务器端安装
    最简单的html tab选项卡
    VC2010 控件的事件窗口面板空白解决办法
    记录一次低版本手机h5页面不能进行跳转
    设计模式的理解
  • 原文地址:https://www.cnblogs.com/liujufu/p/5032507.html
Copyright © 2020-2023  润新知