• throw跟throws关键字


    throws关键字

    定义一个方法的时候可以使用throws关键字声明。使用throws关键字声明的方法表示此方法不处理异常,而交给方法调用处进行处理。

    throws关键字格式:

    public 返回值类型 方法名称(参数列表,,,)throws 异常类{};

     假设定义一个除法,对于除法操作可能出现异常,可能不会。所以对于这种方法最好将它使用throws关键字声明,一旦出现异常,

    则应该交给调用处处理。

    class Math{
        public int div(int i,int j) throws Exception{    // 定义除法操作,如果有异常,则交给被调用处处理
            int temp = i / j ;    // 计算,但是此处有可能出现异常
            return temp ;
        }
    };
    public class ThrowsDemo01{
        public static void main(String args[]){
            Math m = new Math() ;        // 实例化Math类对象
            try{
                System.out.println("除法操作:" + m.div(10,2)) ;
            }catch(Exception e){
                e.printStackTrace() ;    // 打印异常
            }
        }
    };
    因为div使用了throws关键字声明,所以调用此方法的时候,方法必须进行异常处理。通过try...catch;



    如果在主方法的声明也使用了throws关键字呢,那么是不是意味着主方法也可以不处理异常。
    class Math{
        public int div(int i,int j) throws Exception{    // 定义除法操作,如果有异常,则交给被调用处处理
            int temp = i / j ;    // 计算,但是此处有可能出现异常
            return temp ;
        }
    };
    public class ThrowsDemo02{
        // 在主方法中的所有异常都可以不使用try...catch进行处理
        public static void main(String args[]) throws Exception{
            Math m = new Math() ;        // 实例化Math类对象
            System.out.println("除法操作:" + m.div(10,0)) ;
        }
    };
    运行结果:

    Exception in thread "main" java.lang.ArithmeticException: / by zero
    at methoud.Math.div(ThisDemo06.java:4)
    at methoud.ThisDemo06.main(ThisDemo06.java:12)

    在本程序中,主方法不处理任何异常,而交给JAVA中最大头JVM,所以如果在主方法使用了throws关键字,则表示一切异常

    交给JVM进行处理。默认处理方式也是JVM完成。

    throw关键字

    throw关机字作用是抛出一个异常,抛出的时候是抛出的是一个异常类的实例化对象,

    在异常处理中,try语句要捕获的是一个异常对象,那么此异常对象也可以自己抛出。

    package methoud;
    public class ThisDemo06{
        public static void main(String args[]){
            try{
                throw new Exception("自己抛着玩的。") ;    // 抛出异常的实例化对象
            }catch(Exception e){
                System.out.println(e) ;
            }
        }
    };



  • 相关阅读:
    阿里架构师说Kafka工作原理归纳,实践通俗易懂!我咋不信呢
    2020做Java的都看这篇文章,面试一次过、升职加薪,赶快来Get
    IDEA最牛配置,众享丝滑
    在IDEA中搭建Java源码学习环境并上传到GitHub上
    Linux基本命令
    正向代理与反向代理
    Spring Boot中使用MyBatis详解
    ftp命令详解
    CentOS7设置中文字符集
    CentOS7计划任务crontab
  • 原文地址:https://www.cnblogs.com/xiangwenyi/p/10064891.html
Copyright © 2020-2023  润新知