`

throw与throws的区别

    博客分类:
  • Java
阅读更多
throw与throws的区别
区别1:
throw是语句抛出一个异常;throws 是方法抛出一个异常;
throw语法:throw<异常对象>,在方法声明中,添加throws子句表示该方法将抛出异常。
throws语法:[<修饰符>]<返回值类型><方法名>([<参数列表>])[throws<异常类>],其中:异常类可以声明多个,用逗号分割。

区别2:
throws可以单独使用,但throw不能;throw要么和try-catch-finally语句配套使用,要么与throws配套使用。但throws可以单独使用,然后再由处理异常的方法捕获。

区别3:
throws只是告诉程序这个方法可能会抛出这些个异常,方法的调用者可能要处理这些异常。而这些异常可能是该函数体产生的,而throw是明确这个地方要抛出这个异常。
如:
void doA() throws Exception1, Exception3 {
    try {
    ……
    } catch(Exception1 e) {
        throw e;
    } catch(Exception2 e) {
        System.out.println("出错了");
    }
    if (a != b)
        throw new Exception3("自定义异常");
}
代码块……中可能产生异常Exception1、Exception2和Exception3,
如果产生Exception1异常,则捕捉了之后抛出由该方法的调用者去做处理;
如果产生Exception2异常,则该方法自己做了处理(打印出了说出错了),所以该方法就不会再向外抛出Exception2异常了,void doA() throws Exception1,Excpetion3里面的Exception2也就不用写了;
而Exception3异常是该方法的某段逻辑出错,程序员自己作了处理在该段逻辑错误的情况下抛出异常Exception3,则调用者也需要处理。

区别4:
throw语句用在方法体内,表示抛出异常,由方法体内的语句处理,throws语句用在方法声明后面,表示再抛出异常,由调用这个方法的上一级方法中的语句来处理

同时:
1)throws出现在方法函数头;而throw出现在函数体;
2)throws表示出现异常的一种可能性,并不一定会发生这些异常;throw则是抛出了异常,执行throw则一定抛出了某种异常;
3)两者都是消极处理异常的方式(这里的消极并不是说这种方式不好),只是抛出或者可能抛出异常,但是不会由函数去处理异常,真正的处理异常由函数的上层调用处理。
分享到:
评论

相关推荐

    简单了解Java关键字throw和throws的区别

    Java关键字throw和throws的区别 Java是一种面向对象的编程语言,具有强大且灵活的特性。其中,throw和throws是两个重要的关键字,经常被用来处理异常情况。然而,许多初学者却对这两个关键字的区别感到困惑。下面,...

    基于Java中throw和throws的区别(详解)

    基于Java中throw和throws的区别详解 在Java编程语言中,throw和throws是两个常用的关键字,用于处理异常和错误。但是,很多新手程序员对这两个关键字的区别不是很清楚。今天,小编将为大家详细解释throw和throws的...

    throws与throw的区别

    throws與throw的區別 在Java编程中,throws和throw是兩個與异常处理相關的关键字,虽然它们都是用于处理异常的,但它们的使用场景和语法不同。下面我们将详细解释throws和throw的區別。 throws throws是方法抛出...

    throw和throws关键字的区别.xmind

    throw和throws关键字的区别

    throws与throw区别

    本文将深入探讨“throws”与“throw”两个关键字的区别,以及它们在Java异常处理机制中的作用。 ### throws关键字 `throws`关键字主要用于方法签名中,用于声明一个方法可能会抛出的异常类型。当一个方法内部可能...

    详解Java异常处理中throw与throws关键字的用法区别

    以下是 `throw` 和 `throws` 的一些关键区别: 1. **位置不同**:`throws` 关键字通常出现在方法签名后面,声明该方法可能抛出的异常;而 `throw` 关键字出现在方法体内,用于实际抛出异常。 2. **异常处理方式**...

    java处理异常的机制关键字throw和throws使用解析

    Java处理异常的机制关键字throw和throws是Java语言中两个非常重要的机制关键字,它们都是用来处理异常的,但它们之间存在着明显的区别。下面我们将通过示例代码详细地介绍throw和throws的使用解析。 Throws关键字 ...

    Java软件开发实战 Java基础与案例开发详解 10-4 使用throw和throws引发异常 共5页.pdf

    ### Java软件开发实战:使用throw和throws引发异常 #### 1. Java异常处理基础 在Java编程中,异常处理是一项非常重要的技术,用于处理程序运行过程中可能出现的各种异常情况。异常处理主要包括异常的捕获、处理...

    Java throw和throws使用区别分析

    在Java编程语言中,`throw`和`throws`都是用于处理异常的重要关键字,但它们的用法和功能有所不同。理解这两个关键字的区别对于编写健壮的Java程序至关重要。 首先,我们来了解一下异常的基本概念。在Java中,异常...

    Java中throws和throw的区别讲解.docx

    ### Java中throws与throw的区别详解 #### 一、概述 在Java编程语言中,异常处理是一种重要的机制,用于处理程序运行过程中可能出现的各种错误情况。Java提供了多种方式来处理异常,其中`throw`和`throws`是最常用...

    throw关键字

    Java中的throw与throws的关键字的使用

    简单讲解java中throws与throw的区别

    Java 中 throws 与 throw 的区别 Java 中的异常处理是 Java 编程中非常重要的一部分,throws 和 throw 语句是 Java 异常处理中两个最重要的语句,但许多人容易混淆它们的使用场景和区别。下面我们就来详细讲解 Java...

    详解Java编程中throw和throws子句的使用方法

    在Java编程中,异常处理是不可或缺的一部分,而`throw`和`throws`子句是Java异常处理的关键元素。本文将详细解析这两个关键字的使用方法。 首先,`throw`语句用于在代码中主动抛出一个异常。当你检测到程序运行过程...

    重载重写、接口、抽象类、String指针和字符串拼接、异常catch、throw、throws、字符流和字节流

    4. **接口与抽象类的区别**:接口提供了一种标准,抽象类则提供了一些实现细节。接口可以被多个类实现,而抽象类只能被继承。 5. **IO流**:Java IO系统主要分为字节流和字符流两大类。例如,`BufferedWriter`是...

    如何区分JAVA中的throws和throw

    Throws和throw是Java中两个非常重要的异常处理机制,但它们之间的区别却经常让新手感到困惑。下面,我们将详细介绍如何区分JAVA中的throws和throw。 Throws Throws是Java中的一种异常声明机制,它用来声明一个...

    JAVA异常处理机制之throws/throw使用情况的区别

    JAVA异常处理机制之throws/throw使用情况的区别 在 Java 中,throws 和 throw 是两个常用的异常处理机制,但它们之间存在着一些区别。下面我们将通过示例代码和详细的解释来介绍 throws 和 throw 的使用情况和区别...

    throws与throw关键字.md

    异处理中的两个相近的关键字

    Java中throws用法总结

    在Java中,异常处理主要依赖于以下五个关键字:`try`, `catch`, `throw`, `throws`, 和 `finally`。其中,`throws`用于声明一个方法可能抛出的异常类型,从而让调用者能够做好相应的准备或者处理这些异常。 #### `...

    异常处理throws关键字

    ### 异常处理与`throws`关键字 在Java编程语言中,异常处理是软件开发过程中一个非常重要的概念,它能够帮助开发者有效地管理程序运行时可能出现的各种异常情况,从而确保程序的稳定性和健壮性。`throws`关键字是...

Global site tag (gtag.js) - Google Analytics