异常:try-catch处理异常

Exception:在程序的运行过程中,发生了不正常的现象,阻止了程序的运行,我们称之为发生异常

用if-else堵漏洞的缺点(基本不会用if-else来处理异常)

(1)代码臃肿,业务代码和处理异常的代码混在一起

(2)可读性差

(3)程序员需要花费大量的精力来维护这个漏洞

(4)程序员很难堵住所有漏洞(异常)

一:基于if-else处理异常缺点太多,所以Java中专门出了一个异常处理机制:“异常三连”try-catch-finally

二:异常怎么看:

第一行:提示异常的类型

最后一行:提示异常出现的位置

三:捕获异常(用try-catch)

import java.util.InputMismatchException;
import java.util.Scanner;

public class num5 {
public static void main(String[] args) {
    System.out.println("<<<<<<使用try.....cath处理输入异常>>>>>>");
    num5 n=new num5();
    n.sr();
    
}
public void sr(){
    Scanner sc=new Scanner(System.in);
    System.out.print("请输入一个数字:");
    try {
        sc.nextInt();
        System.out.println("程序运行结束,谢谢你的配合!!!");
    } catch (InputMismatchException e) {
        // TODO: handle exception
        System.out.println("你输入的不是一个有效数字,请重新输入!");
        sr();
    }
}
}
 

原理:把可能出现异常的代码放入try代,然后码块中,让后将异常封装为对象,被catch后面的()中的那个异常对象接受,接受以后,执行catch后面的{}里面的代码,然后try-catch后面的代码该怎么执行就怎么执行。

情况:

(1)try中没有异常,catch中代码不执行

(2)try中没有异常,catch进行捕获

如果catch中异常类型和你的异常类型匹配的话:走catch中的代码进行捕获

如果catch中异常类型和你的异常类型不匹配的话:不走catch中的代码,没有捕获成功,程序相当于遇到异常,中断了,后续代码不执行

注意:

(1)try中如果出现异常,然后catch捕获成功的话,那么try中后续的代码是不会执行的

(2)如果catch捕获异常成功,那么try-catch后面的代码该执行还是执行,没有影响

(1)在什么情况下,try-catch后面的代码不执行?

1.throw抛出异常的情况

2.catch中没有正常的进行异常捕获

3.在try中遇到return

(2)怎么样才可以将try-catch后面的代码必须执行?

只要将必须执行的代码放入finally中,那么这个代码无论如何一定执行

(3)return和finally执行顺序?

先执行finally最后执行return

(4)什么代码会放在finally中?

关闭数据资源,关闭io流资源,关闭socket资源

(5)有一句代码很厉害,它可以让finally中的代码不执行

system.exit(status:0);终止当前的虚拟机执行,以下代码就不执行了

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值