class Test {
static void throwOne() throws SQLException, IllegalAccessException {
System.out.println("Inside throwOne.");
throwTwo();
throw new SQLException("sql");
}
static void throwTwo() throws IllegalAccessException {
System.out.println("Inside throwTwo.");
throw new IllegalAccessException("demo");
}
public static void main(String args[]) {
try {
throwOne();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
throws 是抛出异常,try{...}catch{...}是捕获、处理异常
在throwOne()中,会抛出SQLException,throwOne()不会处理SQLException,他会抛出,由调用她的main方法
来处理,在main方法中,由try语句块,捕获throwOne方法中抛出的异常,并由catch语句块进行处理。又,在throwOne
方法中调用了throwTwo方法,throwTwo抛出了IllegalAccessException 异常,这个IllegalAccessException 由调用他
的throwOne进行处理,而throwOne中没有对IllegalAccessException 进行处理的办法,不能处理,所以继续抛给调用他
的main方法,main会对IllegalAccessException 异常进行捕获和处理。
上面的例子是只能捕获到IllegalAccessException 异常,而捕获不了SQLException的,因为throwTwo抛出异常后,
throwOne也奖抛出IllegalAccessException 异常,语句不继续执行,没有抛出SQLException。
static void throwTwo() throws IllegalAccessException {
System.out.println("Inside throwTwo.");
//throw new IllegalAccessException("demo");
}
如果将throwTwo中的第二行代码注释掉,将不再抛出IllegalAccessException,从而SQLException将会被main捕获处理。
分享到:
相关推荐
`try-catch`块是Java异常处理的核心部分,它允许程序员在代码可能出现问题的地方进行异常捕获和处理,避免程序因未预期的错误而崩溃。下面我们将详细讨论`try-catch`捕获异常的实例。 首先,`try`块是包含可能抛出...
你还可以在`try-catch-finally`结构内部嵌套另一个`try-catch-finally`结构,以处理更复杂的情况。这种方式使得异常处理更加灵活,能够针对不同层次的异常进行分别处理。 6. **throw和throws关键字** `throw`...
本文将深入探讨“throws”与“throw”两个关键字的区别,以及它们在Java异常处理机制中的作用。 ### throws关键字 `throws`关键字主要用于方法签名中,用于声明一个方法可能会抛出的异常类型。当一个方法内部可能...
throw语句通常与try-catch-finally语句配套使用,要么与throws配套使用。 throw的主要作用是明确地抛出一个异常,告訴调用者该方法已经抛出了一个异常。例如,`if (a != b) throw new Exception3("自定义异常");`,...
Java关键字throw和throws的区别 Java是一种面向对象的编程语言,具有强大且灵活的特性。其中,throw和throws是两个重要的关键字,经常被用来处理异常情况。然而,许多初学者却对这两个关键字的区别感到困惑。下面,...
理解异常的概念,运用 try 块、catch 块和 finally 块处理异常,运用多重 catch 块处理异常,运用嵌套 try/catch 块处理异常,运用关键字 throw 和 throws 处理异常。 3. 程序中的异常 在 Java 中,异常可以是编译...
在Java中,异常处理机制是通过五个关键字来实现的:try、catch、finally、throw、throws。 try/catch 块 try/catch 块是异常处理机制的核心组成部分。try 块用于包围可能产生异常的代码,catch 块用于捕获和处理...
### Java异常处理的四大金刚:try、catch、finally和throw的深度解析 #### Java异常处理概述 异常处理机制是程序设计中的一个重要组成部分,它能够帮助程序员有效地管理程序运行过程中可能出现的各种错误情况。...
在Java中,异常处理主要通过try-catch-finally结构来实现,而在异常处理中,`throw` 和 `throws` 关键字起着关键作用。它们虽然都与异常抛出有关,但使用方式和含义有所不同。 `throw` 关键字用于在代码中明确地抛...
首先,throws 和 throw 的主要区别在于它们的使用位置和作用。throws通常出现在方法函数头,而 throw 则出现在函数体中。throws 表示出现异常的一种可能性,并不一定会发生这些异常;throw 则是抛出了异常,执行 ...
在这个“375.373.JAVA基础教程_异常处理-处理异常:try-catch方式(375)”的教程中,我们将深入探讨Java中的异常处理机制,特别是如何通过try-catch语句块来处理异常。 异常在Java中是一种对象,它是类`Exception`或...
### Java中throws与throw的区别详解 #### 一、概述 在Java编程语言中,异常处理是一种重要的机制,用于处理程序运行过程中可能出现的各种错误情况。Java提供了多种方式来处理异常,其中`throw`和`throws`是最常用...
C++中try throw catch异常处理的用法示例 C++中的异常处理机制是通过try、throw和catch三个关键字来实现的。try块用于包围可能抛出异常的代码,throw语句用于抛出异常,而catch块用于捕获和处理异常。 try块的语法...
在上面的例子中,`testCheckedException()`方法声明它可能会抛出`IOException`,这样调用该方法的代码就必须处理这个异常,要么用`try-catch`块捕获,要么继续在方法签名中`throws`。 回到问题本身,`...
### Java软件开发实战:使用throw和throws引发异常 #### 1. Java异常处理基础 在Java编程中,异常处理是一项非常重要的技术,用于处理程序运行过程中可能出现的各种异常情况。异常处理主要包括异常的捕获、处理...
Java处理异常的机制关键字throw和throws是Java语言中两个非常重要的机制关键字,它们都是用来处理异常的,但它们之间存在着明显的区别。下面我们将通过示例代码详细地介绍throw和throws的使用解析。 Throws关键字 ...
- `throw`和`throws`关键字:`throw`用于手动抛出异常,`throws`用于方法签名,声明可能会抛出的异常。 2. 示例代码分析: - 代码示例展示了从用户输入中读取整数,并根据输入值执行不同操作。如果用户输入非数字...
异常处理是通过五个关键字来实现的:`try`、`catch`、`finally`、`throw`和`throws`。在"异常-尝试-捕获-java"这个主题中,我们将深入探讨这些概念。 `try`块是异常处理的起点,它包含了可能会抛出异常的代码。如果...
5. **throw 和 throws 的区别**: - `throw` 用于在方法体内抛出一个具体的异常实例。 - `throws` 用于在方法签名中声明该方法可能会抛出的异常,这样调用者就需要处理这些异常。 6. **异常链**: 在Java中,...