网站/小程序/APP个性化定制开发,二开,改版等服务,加扣:8582-36016

    今天小编就为大家分享一篇关于Java异常处理之try...catch...finally详解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    从键盘接收两个整数,输出两数的商:

    package java_exception;
    import java.util.Scanner;
    public class TryDemoOne {
        public static void main(String[] args) {
            //定义两个整数,键盘输入两个整数,输出两数之商
            Scanner input = new Scanner(System.in);
            System.out.println("=====运算开始=====");
            System.out.print("请输入第一个整数:");
            int one = input.nextInt();
            System.out.print("请输入第二个整数:");
            int two = input.nextInt();
            System.out.println("one和two的商为:"+ (one/two));
            System.out.println("=====运算结束=====");
        }
    }


    若此时将0或字母作为除数,程序必然会报错。

    为了处理这种错误的发生,可以引入try-catch来避免程序报错而终止运行。

    在可能出现异常的位置引入try-catch结构,当程序某一句发生错误,就会输出catch中自己设置的报错内容(程序出现错误!),其中 e.printStackTrace();语句会打印出错的详情信息,在终端打印的位置随机,若没有该语句,就只会输出自己设置的报错内容,程序正常运行。:

    try{
        System.out.print("请输入第一个整数:");
        int one = input.nextInt();
        System.out.print("请输入第二个整数:");
        int two = input.nextInt();
        System.out.println("one和two的商为:"+ (one/two));
    }catch(Exception e){
        System.out.println("程序出现错误!");
        e.printStackTrace();   //打印出错的详情信息,在终端打印的位置随机
    }


    输出:

    1.输入两个整数

    =====运算开始=====
    请输入第一个整数:15
    请输入第二个整数:5
    one和two的商为:3
    =====运算结束=====

    2.将字母a作为除数输入

    =====运算开始=====
    请输入第一个整数:15
    请输入第二个整数:s
    程序出现错误!
    java.util.InputMismatchException
            at java.base/java.util.Scanner.throwFor(Scanner.java:939)
            at java.base/java.util.Scanner.next(Scanner.java:1594)
            at java.base/java.util.Scanner.nextInt(Scanner.java:2258)
            at java.base/java.util.Scanner.nextInt(Scanner.java:2212)
            at java_exception.TryDemoOne.main(TryDemoOne.java:21)
    =====运算结束=====


    3.将0作为除数输入

    =====运算开始=====
    请输入第一个整数:15
    请输入第二个整数:0
    程序出现错误!
    java.lang.ArithmeticException: / by zero
            at java_exception.TryDemoOne.main(TryDemoOne.java:22)
    =====运算结束=====


    如果要保证在catch包含的语句之后的结果正常输出,可以加上finally:

    try{
        System.out.print("请输入第一个整数:");
        int one = input.nextInt();
        System.out.print("请输入第二个整数:");
        int two = input.nextInt();
        System.out.println("one和two的商为:"+ (one/two));
    }catch(Exception e){
        System.out.println("程序出现错误!");
        e.printStackTrace();   //打印出错的详情信息,在终端打印的位置随机
    }finally{
        System.out.println("=====运算结束=====");
    }


    以上就是try-catch-finally的完整组合了,try负责抛出异常,catch负责捕获异常,finally负责无论怎样都会执行。


    评论 0

    暂无评论
    0
    0
    0
    立即
    投稿
    发表
    评论
    返回
    顶部