java异常处理

一、java异常体系:

 二、编译时异常和运行时异常的区别:

(一)编译时异常

       1. 编译时产生不正常的现象【Exception类和Exception除了Runtimeexception外其他子类】;

        2.编译时异常出现必须解决【捕获或声明】;

(二)运行时异常

        1.运行异常可以不作处理;

         2..RuntimeException类和RuntimeException的子类【运行时才会产生的不正常现象】;

两种异常的处理:

 三、异常的处理方式

(一)捕获处理

        1. try  catch

        格式:

         try{

                可能出现异常的代码

        } catch(异常类型 变量){

                处理具体异常

        }

代码演示:

public class ExceptionDemo {
    public static void main(String[] args) {
        FileOutputStream fos = null;
        try {
            fos = new FileOutputStream("Item/mm/miao/tt.txt");
            fos.write("这是我们捕获的异常,采用try--catch解决!".getBytes());
            
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            if(fos != null) {
                try {
                    fos.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

注意:

        1.如果出现多个异常,需要准备多种异常情况的处理机制,可以加多个catch块;

        2.多个catch的异常处理类型如果有子父类继承关系时--子类必须在前,父类在后;

2.try catch  finally

        在我们处理异常的时候不管异常发生与否都必须要执行的代码段,可以放到finally里中

注意:finally不能单独使用

(二)声明异常

        遇到异常自己不做具体的处理,这时可以使用关键字throws把异常的类型抛出去,声明给下一个使用该方法的元素。

        具体做法: 在方法的参数列表后使用throws + 异常的类型。

public class ExceptionDemo {
    public static void main(String[] args) throws FileNotFoundException/*这里就是抛出的一个异常*/{
        FileOutputStream fos = new FileOutputStream("Item/mm/miao/tt.txt");
    }
}

三、throw和throws的区别

throwsthrow

方法【参数列表】后面,跟的是异常类名

方法体内,跟的是异常对象

表示声明异常,调用该方法有可能

会出现这样的异常

表示手动抛出异常对象,只要执行

就必然有异常抛出

处理异常类型产生异常对象

 五、JVM默认处理异常的方式

  1. 、在代码中如果出现不正常的异常情况,就将其封装到一个异常对象中;
  2. 、将异常对象抛给调用该方法的方法;
  3. 、某个方法接收到底层方法抛上来的异常,没办法自己处理,就继续向上抛出,最终抛给主方法,主方法也不做处理,就抛给调用自己的jvm虚拟机;
  4. Jvm虚拟调用main方法时接收到抛过来的异常,首先停止jvm的运行状态同时捕获异常对象将异常对象的所有信息,通过错误流打印出来;

 六、Throwable常用方法

 1、构造方法

  • Throwable():创建一个没有任何信息异常对象
  • Throwable(String message):创建一个具有描述异常信息的异常对像
  • Throwable(Throwable t):创建一个具有异常原因信息的异常对象

 2、常用方法

        public String getMessage() :返回此 throwable 的详细消息字符串

        public String toString() :返回此可抛出的简短描述【对象的名称 原因 描述信息】

        public void printStackTrace() :把异常的错误栈轨迹信息输出在控制台

        public Throwable getCause( ) :获取异常对象的产生原因

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值