`
ldzyz007
  • 浏览: 720155 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

throws 与throw

    博客分类:
  • java
 
阅读更多
throws  是用来声明一个方法可能抛出的所有异常信息,注意,是可能的,所有的异常信息,在Java 里面,大家很熟悉什么是类和对象,在这里,throws 要抛出的就是一个异常类,因为它并不知道具体会出现哪种异常,所以就简单抛出一个异常类,包含这个异常类下面所有可能的异常。throws 通常不用显示的捕获异常,而是由系统自动将所有捕获到的异常信息抛给上级方法来处理,举个简单的例子来说:A类声明抛出了一个异常类,如果系统捕获到该异常类下面某个具体的异常对象,则上交给A的父类B来处理,假如B不做处理,那么B继续上抛,上抛给B的父类C来处理,以此类推,直至找到可以处理该异常的方法为止。

throw  如上面所说,throws 是用来声明一个方法可能抛出的所有异常信息,抛出的是异常类,那么throw 就是如Java 面向对象思想里面的类和对象的关系,因为throw 要抛出的是一个具体的异常对象,而不是异常类。throw  则需要用户自己捕获相关的异常,而后再对其进行相关包装,最后再将包装后的异常信息抛出。

通常在一个方法(类)的声明处通过  throws  声明方法(类)可能抛出的异常信息,而在方法(类)内部通过  throw  声明一个具体的异常信息。

1.throws 用于抛出方法层次的异常,
并且直接由些方法调用异常处理类来处理该异常,
所以它常用在方法的后面。比如
public static void main(String[] args) throws SQLException

2.throw 用于方法块里面的代码,比throws的层次要低,比如try...catch ....语句块,表示它抛出异常,
但它不会处理它,
而是由方法块的throws Exception来调用异常处理类来处理。

throw用在程序中,明确表示这里抛出一个异常。  
throws用在方法声明的地方,表示这个方法可能会抛出某异常。

throw是抛出一个具体的异常类,产生一个异常。
throws则是在方法名后标出该方法会产生何种异常需要方法的使用者捕获并处理。

throw是现在就抛出一个异常
throws是把异常交给他的上级管理,自己不进行异常处理

系统自动抛出的异常
所有系统定义的编译和运行异常都可以由系统自动抛出,称为标准异常,并且 Java 强烈地要求应用程序进行完整的异常处理,给用户友好的提示,或者修正后使程序继续执行。

语句抛出的异常
用户程序自定义的异常和应用程序特定的异常,必须借助于 throws 和 throw 语句来定义抛出异常。


throw是语句抛出一个异常。
语法:throw (异常对象);
      throw e;

throws是方法可能抛出异常的声明。(用在声明方法时,表示该方法可能要抛出异常)
语法:[(修饰符)](返回值类型)(方法名)([参数列表])[throws(异常类)]{......}
      public void doA(int a) throws Exception1,Exception3{......}

throw语句用在方法体内,表示抛出异常,由方法体内的语句处理。
throws语句用在方法声明后面,表示再抛出异常,由该方法的调用者来处理。

throws主要是声明这个方法会抛出这种类型的异常,使它的调用者知道要捕获这个异常。
throw是具体向外抛异常的动作,所以它是抛出一个异常实例。

throws说明你有那个可能,倾向。
throw的话,那就是你把那个倾向变成真实的了。

1、throws出现在方法函数头;而throw出现在函数体。
2、throws表示出现异常的一种可能性,并不一定会发生这些异常;throw则是抛出了异常,执行throw则一定抛出了某种异常。
3、两者都是消极处理异常的方式(这里的消极并不是说这种方式不好),只是抛出或者可能抛出异常,但是不会由函数去处理异常,真正的处理异常由函数的上层调用处理。
4.throws关键字通常被应用在声明方法时,用来指定可能抛出的异常。多个异常可以使用逗号隔开。当在主函数中调用该方法时,如果发生异常,就会将异常抛给指定异常对象
5.throw关键字通常用在方法体中,并且抛出一个异常对象。程序在执行到throw语句时立即停止,它后面的语句都不执行。通过throw抛出异常后,如果想在上一级代码中来捕获并处理异常,则需要在抛出异常的方法中使用throws关键字在方法声明中指明要跑出的异常;如果要捕捉throw抛出的异常,则必须使用try—catch语句。
分享到:
评论

相关推荐

    throws与throw区别

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

    throws与throw的区别

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

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

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

    throws与throw关键字.md

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

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

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

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

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

    如何区分JAVA中的throws和throw

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

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

    在Java中,异常处理主要通过try-catch-finally结构来实现,而在异常处理中,`throw` 和 `throws` 关键字起着关键作用。它们虽然都与异常抛出有关,但使用方式和含义有所不同。 `throw` 关键字用于在代码中明确地抛...

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

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

    推荐优质Java课程 疯狂Java语言编程 Java入门到进阶教程 10.异常处理(共24页).ppt

    4. **throws与throw**:`throws`用于声明方法可能抛出的异常,而`throw`用于在代码中显式抛出一个异常对象。 5. **自定义异常**:当需要表示特定错误情况时,可以创建新的异常类,继承自`Exception`或其子类,这样...

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

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

    JAVA 面向对象程序设计第5章 异常处理.pptx

    【throws与throw】 `throws`关键字用于声明方法可能抛出的异常,这允许将异常的处理推迟到调用该方法的代码中。例如: ```java public void readFile(String fileName) throws IOException { // 文件读取操作,...

    亲测携程java面试(8问)无答案.zip

    - throws与throw关键字 - 自定义异常 6. **IO流与NIO**: - 字节流与字符流 - 缓冲区(BufferedReader, BufferedWriter等) - 文件操作 - NIO(New IO)与AIO(Asynchronous IO) 7. **反射与动态代理**: ...

    Java throw和throws使用区别分析

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

    Java语言程序设计案例教程.zip

    - throws与throw关键字的使用 8. **第8章:IO流(未包含在文件名中)** - 流的概念与分类:字节流与字符流 - 文件输入输出流 - 转换流:InputStreamReader与OutputStreamWriter - 缓冲流:BufferedReader与...

    Java 教材中的例程.zip

    - throws与throw关键字 - 自定义异常 7. **ch07** - 集合框架 - 数组与集合的关系 - List、Set与Map接口 - ArrayList、LinkedList、HashSet、HashMap等具体实现 - 遍历集合的方法 - 集合的操作:添加、删除...

    JAVA国际认证(SCJP)典型试题1000例.rar

    3. throws与throw:理解何时使用throws声明异常,何时使用throw主动抛出异常。 四、内存管理与垃圾收集 1. 对象生命周期:理解对象的创建、使用和销毁过程。 2. 垃圾收集:知道Java自动进行垃圾回收,理解引用类型...

    throw与throws(处理方案示例).md

    throw与throws(处理方案示例).md

    java名企面试题_java面试题_

    3. throws与throw关键字:何时使用throws声明异常,何时使用throw抛出异常。 四、IO流与NIO 1. 字节流与字符流:理解InputStream、OutputStream、Reader、Writer的基本使用。 2. 文件操作:掌握File类的常用方法,...

Global site tag (gtag.js) - Google Analytics