异常的捕获

处理异常
package com.CoderLB;

public class Test {
    public static void main(String[] args) throws Exception {
        System.out.println("开始执行程序");
        String str = "abcd";
        System.out.println(Integer.parseInt(str));
        System.out.println("程序执行完毕");
    }
}

在这里插入图片描述
出现异常之后的代码如果不做异常处理或者没有捕获到则不会被执行,也就是终止了程序

try{//可能出现的代码块}
	catch(异常类型 e){
		//处理捕获的异常的方法
	}

其中“异常类型”确定了当前的这个try语句只能捕获给定的异常类型UI及该异常类型的子类类型。

package com.CoderLB;


import com.baidu.vo.Dept;
import com.baidu.vo.Emp;
import com.dao.IBaseDAO;

import java.lang.reflect.Field;
import java.lang.reflect.Member;
import java.lang.reflect.Method;

public class Test {
    public static void main(String[] args) throws Exception {
        System.out.println("开始执行程序");
        try {
            String str = "abcd";
            System.out.println(Integer.parseInt(str));
        }catch (Exception e){
            //打印异常信息
            //e.printStackTrace();
        }
        System.out.println("程序执行完毕");

    }
}
输出:开始执行程序 程序执行完毕

要求一段代码不管是否出现异常都必须执行,那么这段代码要放在finally语句中。在catch之后加上finally语句。

package com.CoderLB;


import com.baidu.vo.Dept;
import com.baidu.vo.Emp;
import com.dao.IBaseDAO;

import java.lang.reflect.Field;
import java.lang.reflect.Member;
import java.lang.reflect.Method;

public class Test {
    public static void main(String[] args) throws Exception {
        System.out.println("开始执行程序");
        try {
            String str = "abcd";
            System.out.println(Integer.parseInt(str));
        }catch (Exception e){
            //打印异常信息
            e.printStackTrace();
        }finally {
            //不管是否出现异常都要执行的语句
            System.out.println("不管是否出现异常都要执行的语句");
        }
        System.out.println("程序执行完毕");

    }
}

输出:在这里插入图片描述
如果出现异常代码之后是在try语句块中

package com.CoderLB;

public class Test {
    public static void main(String[] args) throws Exception {
        System.out.println("开始执行程序");
        try {
            String str = "abcd";
            System.out.println(Integer.parseInt(str));
            System.out.println(">>>>>>>>>>>>");
        }catch (Exception e){
            //打印异常信息
            e.printStackTrace();
        }finally {
            //不管是否出现异常都要执行的语句
            System.out.println("不管是否出现异常都要执行的语句");
        }
        System.out.println("程序执行完毕");

    }
}

在这里插入图片描述
输出中并没有 “>>>>>>>>”
如果出现异常之后的程序在try语句块之外则处理了异常就会被执行,如果出现异常之后的代码是try语句之内则不会被执行。

小结
  • 出现异常之后的代码如果不做异常处理或者没有捕获到则不会被执行,也就是终止了程序
  • 如果出现了异常: 1.在try 语句块之外的程序会被执行;2如果在try语句块之内就算异常被处理完毕,后面的代码还是不会被执行
  • finally语句中代码不管是否出现异常、不管是否处理了异常都会被执行。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值