zoukankan      html  css  js  c++  java
  • 捕获异常try-catch-finally

    异常分类

    try-carch-finally出现规则

    return关键字的使用

    finally中慎用return,虽然语法上没错,但是由于finally的强制执行,影响逻辑上需要return的值

    package com.mpp.test;
    
    import java.util.InputMismatchException;
    import java.util.Scanner;
    
    public class TryDemoOne {
        public static void main(String[] args) {
         /*   //要求:定义两个整数,输出两数之商
    
            int one = 12;
            int two =2;
            System.out.println("one和two的商是:"+one/two);
         */
    
         //要求:定义两个证书,接受用户的键盘输入,输出两数之商
            Scanner input = new Scanner(System.in);
            System.out.println("=========运算开始=======");
            try {
                System.out.print("请输入第一个整数:");
                int one = input.nextInt();
                System.out.print("请输入第二个整数:");
                int two = input.nextInt();
                System.out.println("one和two的商是:" + one / two);
            }
            //多重catch结构
            catch (ArithmeticException e){ //算数异常
                System.exit(1);  //终止程序运行
                e.printStackTrace();   //打印错误信息,出现位置随机,无固定位置
                System.out.println("除数不允许为零");
            }
            catch (InputMismatchException e){
                System.out.println("请输入整数");
                e.printStackTrace();
            }
            catch (Exception e){//当还有不可知异常被抛出时,放一个Exception捕获所有异常
                System.out.println("出错");
            }
            finally {//无论怎样都会执行的代码
                System.out.println("=========运算结束=======");
            }
    
        }
    }

    return慎用实例:

    package com.mpp.test;
    
    import java.util.Scanner;
    
    public class TryDemoTwo {
        public static void main(String[] args) {
            int res = test();
            System.out.println("one和two的商是:" + res);
        }
    
        public static int test(){
            Scanner input = new Scanner(System.in);
            System.out.println("=========运算开始=======");
            try {
                System.out.print("请输入第一个整数:");
                int one = input.nextInt();
                System.out.print("请输入第二个整数:");
                int two = input.nextInt();
                return one/two;
            }
            catch (ArithmeticException e){ //算数异常
                System.out.println("除数不允许为零");
                return 0;
            }
            finally {//无论怎样都会执行的代码
                System.out.println("=========运算结束=======");
    //            return -10000000;   finally中慎用return,虽然语法上没错,但是由于finally的强制执行,影响逻辑上需要return的值
            }
        }
    }
    

      

  • 相关阅读:
    使用discourse 作为社区工具
    dremio schema 更新的问题
    go-mysql-server 新版本发布
    开发一个dremio user_agent 解析函数
    java 几个不错的user_agent 解析工具包
    Docker Swarm 高可用详解
    用Docker Swarm实现容器服务高可用
    Docker 1.12 :认识 Swarm 模式下的节点崩溃处理
    Linux下磁盘分区调整(在不使用LVM的情况下)
    docker-swarm----多机容器管理
  • 原文地址:https://www.cnblogs.com/mpp0905/p/10360668.html
Copyright © 2011-2022 走看看