java自学 day5

异常:程序运行过程中,出现一些问题,阻止了程序的正常运行,这种情况称之为异常。

异常处理:异常处理机制能让程序在异常发生时,按照代码的预先设定的异常处理逻辑,针对性地处理异常,让程序尽最大可能恢复正常并继续执行。

一般使用 try...catch...语句块来处理异常,下面是一个例子:

import java.util.Scanner;

public class test {

    public static void main(String[] args) {
        while(true){
        try{
        Scanner in=new Scanner(System.in);
        System.out.println("请输入1或2!");
        int a=in.nextInt();
        if(a!=1&&a!=2){
            continue;
        }
        else{
            break;
        }
        }catch(Exception e){
            continue;
        }
        
    }
    System.out.println("欢迎");
}}

这里输入了不属于int类型的"a",但是并没有出现错误,这是因为这里的异常被catch捕获到了,并执行了continue,继续循环。

 如果注释掉try...catch...语句块

import java.util.Scanner;

public class test {

    public static void main(String[] args) {
        while(true){
        /*try{*/
        Scanner in=new Scanner(System.in);
        System.out.println("请输入1或2!");
        int a=in.nextInt();
        if(a!=1&&a!=2){
            continue;
        }
        else{
            break;
        }
        /*}catch(Exception e){
            continue;
        }*/
        
    }
    System.out.println("欢迎");
}}

再输入"a"会出现这种结果:

可以有多个catch块,每个catch可以处理一个异常,异常匹配是按照catch块的顺序从上往下寻找的,只有第一个匹配的catch会得到执行,如果catch块之间有父子关系,子类异常放在前面。

throws是另一种处理异常的方式,就是不知道该如何处理,就把这个异常用throws抛出,让调用这个方法的去处理。

原文地址:https://www.cnblogs.com/gyd123/p/9409674.html