首页 > 其他分享 >throw与throws的区别

throw与throws的区别

时间:2023-11-13 16:35:02浏览次数:24  
标签:异常 调用者 区别 抛出 throws 方法 throw

throw 和 throws 都与异常处理有关,但它们的用法和含义不同。

两者的区别

throw 在方法体内使用,throws 在方法声明上使用。

throw 后面接的是异常对象,只能接一个。throws 后面接的是异常类型,可以接多个,多个异常类型用逗号隔开。

throw 是在方法中出现不正确情况时,手动来抛出异常,结束方法的,执行了 throw 语句一定会出现异常。而 throws 是用来声明当前方法有可能会出现某种异常的,如果出现了相应的异常,将由调用者来处理,声明了异常不一定会出现异常。

throw 是一个关键字,用于抛出一个异常对象,示例如下:

throw new Exception("抛出一个异常");

throws 是一个关键字,用于声明方法可能会抛出的异常类型,示例如下:

public void method() throws Exception {
    // 方法体
}

throws 是用在某个方法的方法声明上的,表示当前方法如果抛出了某些异常,将由调用者来进行异常处理。这种方式也可以让调用者知晓该对哪些异常进行处理。throws 声明的异常不一定会出现,只是一种可能。

//调用者处理异常,有两种处理方式
    //第一种就是再次抛出
    //第二种用try和catch环绕
    public static void main(String[] args) throws Exception{
        try {
            Demo1();
        } catch (ArithmeticException e) {
            System.out.println(e.getMessage());
        }
    }

//    定义方法时,throws声明该方法可能抛出的异常类型
//    Exception包含所有异常类型
    public static void Demo1() throws ArithmeticException{
        int i=1/0;
        System.out.println(i);
    }

throw 是用在某个方法的方法体内的,当我们认定某种情况不合理时,就可以创建异常对象,封装好异常信息,然后通过 throw 来抛出异常并终止该方法。

    public static void Demo2(int age){
        if(age<0||age>100){
            //throw用在Demo2(int age)方法的方法体内
            //括号里面提示出的什么问题
            throw new ArithmeticException("年龄不合法");
        }
    }

标签:异常,调用者,区别,抛出,throws,方法,throw
From: https://www.cnblogs.com/xioaliang/p/17829440.html

相关文章

  • java中String、StringBuffer和StringBuilder的区别(简单介绍)
    简单介绍java中用于处理字符串常用的有三个类:1、java.lang.String2、java.lang.StringBuffer3、java.lang.StrungBuilder三者共同之处:都是final类,不允许被继承,主要是从性能和安全性上考虑的,因为这几个类都是经常被使用着,且考虑到防止其中的参数被参数修改影响到其他的应用......
  • Hashtable和HashMap之间的区别
    HashMap的工作原理是近年来常见的Java面试题。几乎每个Java程序员都知道HashMap,都知道哪里要用HashMap,知道Hashtable和HashMap之间的区别,那么为何这道面试题如此特殊呢?是因为这道题考察的深度很深。这题经常出现在高级或中高级面试中,甚至会要求你实现HashMap来考察你的编程能力。C......
  • 面向对象的 ABAP 里,全局类和局部类有什么区别,以及各自使用场合试读版
    本教程之前的文章,第一次介绍了ABAP面向对象编程领域的类,实例,方法等概念。20.面向对象的ABAP编程初探-什么是类,实例,和Public方法在ABAP很多帮助文档里,我们都能看到SAP在提到类的时候,总是将GlobalClass(全局类)和LocalClass(局部类,有时也称本地类,内部类)相提并论。......
  • vue2 和 vue3 什么区别
    GitHubCopilot:Vue2和Vue3在许多方面都有所不同,以下是一些主要的区别:CompositionAPI:Vue3引入了CompositionAPI,这是一种新的方式来组织和复用代码。这是与Vue2OptionsAPI相比的一个重大改变。性能:Vue3在性能方面进行了大量优化,包括更小的框架大小,更快......
  • 并行和并发有什么区别?
    并发就是在一段时间内,多个任务都会被处理;但在某一时刻,只有一个任务在执行。单核处理器做到的并发,其实是利用时间片的轮转,例如有两个进程A和B,A运行一个时间片之后,切换到B,B运行一个时间片之后又切换到A。因为切换速度足够快,所以宏观上表现为在一段时间内能同时运行多个程序。并行就......
  • Redis持久化⽅式有哪些?有什么区别?
    Redis持久化⽅案分为RDB和AOF两种。RDBRDB持久化是把当前进程数据生成快照保存到硬盘的过程,触发RDB持久化过程分为手动触发和自动触发。RDB⽂件是⼀个压缩的⼆进制⽂件,通过它可以还原某个时刻数据库的状态。由于RDB⽂件是保存在硬盘上的,所以即使Redis崩溃或者退出,只要RDB⽂件存在,......
  • 在除法运算中,使用'/'和'//'有什么区别?
    内容来自DOChttps://q.houxu6.top/?s=在除法运算中,使用'/'和'//'有什么区别?使用其中一种比另一种有什么好处吗?在Python2中,它们似乎返回相同的结果:>>>6/32>>>6//32在Python3.x中,5/2会返回2.5,而5//2会返回2。前者是浮点除法,后者是取整除法,有时也称为整数除法。......
  • 在PHP中,HTTP_HOST和SERVER_NAME有什么区别?
    内容来自DOChttps://q.houxu6.top/?s=在PHP中,HTTP_HOST和SERVER_NAME有什么区别?以下是$_SERVER['HTTP_HOST']和$_SERVER['SERVER_NAME']在PHP中的区别?何时会考虑使用其中之一以及原因是什么?在PHP中,$_SERVER['HTTP_HOST']是从HTTP请求头获取的值,它是客户端实际用作请求的目......
  • 进程和线程的区别
    1.进程简单来说就是一个正在运行的程序,QQ就是个进程,微信也是个进程。线程是系统分配处理器时间的基本单元。2.进程有自己的堆栈空间和数据段,开销是比较大的。线程有独立的堆栈空间,但是数据段是共享的,开销会更小,切换速度更快。但是安全性比进程要差。在保护模式下,进程崩溃不会对其......
  • Linux命令gzip、bzip、tar、zip区别:
     转载: 【彷徨|Linux各个压缩命令(gzip,bzip2,zip,tar)的特点及区别详解】https://mbd.baidu.com/ma/s/3Wi3H7BE1:gzipgzip只能压缩(解压)文件,不能压缩目录,后缀名为.gz, 而且不保留原文件 解压使用gzip–d或者gunzip[root@localhosttest_tar]##压缩[root@......