`
luzl
  • 浏览: 572196 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

try catch 空块的情况

JVM 
阅读更多
代码1:
package scjp;

public class Demo464 {
	public static void main(String args[]){ 
	    System.out.println("Before Try"); 
	    try {
	    	
	    } catch(NullPointerException t) { 
	    System.out.println("Inside Catch"); 
	  } 
	    System.out.println("At the End"); 
	 } 

}



代码2:
package scjp;

import java.io.IOException;

public class Demo464 {
	public static void main(String args[]){ 
	    System.out.println("Before Try"); 
	    try {
	    	
	    } catch(IOException t) { 
	    System.out.println("Inside Catch"); 
	  } 
	    System.out.println("At the End"); 
	 } 

}




代码2中在catch行会报错,说永远不会有IOException可以catch,为什么代码1却不会报错呢。
  • 大小: 7.5 KB
分享到:
评论
4 楼 viewtifuljoey 2008-12-24  
原因就是你的异常不是runtime的,必须要手工抛出,才不会报错
3 楼 puroc 2008-11-24  
引用
这个问题很基础,因为NullPointerException是RuntimeException的基类。RuntimeException的异常是由JVM来处理的。而IOException必须由你自己来处理,因此如果你没有IOException,当然会出错。


“RuntimeException的异常是由JVM来处理的。”这句话说的不太严密。也可以自己处理。呵呵。鸡蛋里挑骨头。Oh,Yeah!
2 楼 luzl 2008-11-22  
这两种类是怎么区分的?比如说继承关系上或者那儿,还望指教!
1 楼 chenshuang1227 2008-11-22  
这个问题很基础,因为NullPointerException是RuntimeException的基类。RuntimeException的异常是由JVM来处理的。而IOException必须由你自己来处理,因此如果你没有IOException,当然会出错。

相关推荐

    java中try catch的用法

    通过使用`try-catch`块,开发者可以更加精细地控制程序的行为,并确保即使在遇到异常的情况下,程序也能以一种优雅的方式继续执行或者终止。 #### 二、try-catch的基本语法 `try-catch`的基本语法结构如下: ```...

    try-catch用法

    2. **避免空 `catch` 块**:在 `catch` 块中至少应该记录或处理异常,避免仅仅为了编译而存在。 3. **资源清理**:如果 `try` 块中使用了需要关闭的资源(如文件流),应使用 `finally` 块确保资源得到正确的释放。 ...

    java try…catch捕获异常的实例

    `try-catch`块是Java异常处理的核心部分,它允许程序员在代码可能出现问题的地方进行异常捕获和处理,避免程序因未预期的错误而崩溃。下面我们将详细讨论`try-catch`捕获异常的实例。 首先,`try`块是包含可能抛出...

    如何编写没有TryCatch的程序

    在编程中,`try-catch` 语句块通常用于处理异常情况,它提供了一种结构化的方式来捕获和管理程序运行时可能出现的错误。然而,编写没有 `try-catch` 的程序并不意味着完全避免错误处理,而是通过设计更健壮、更安全...

    Java try catch finally异常处理组合详解

    try catch finally组合是try catch组合的扩展,增加了finally块用于释放资源。finally块中的语句总是会被执行,無论异常是否被抛出。try catch finally组合的语法结构如下: ```java try { // 可能会抛出异常的...

    Java软件开发实战 Java基础与案例开发详解 10-3 使用try和catch捕获异常 共10页.pdf

    - **多重catch语句**:当一个try块后跟多个catch块时,称为多重catch语句。 - **示例格式**: ```java public void method() { try { // 代码段 // 可能产生多种类型的异常 } catch (异常类型1 ex) { // 处理...

    Java中try、catch的使用方法

    try-catch语句的语法格式为:try{ //代码块}catch(Exception1 e){ //抛出异常后所要进行的操作}。当try语句中捕获到异常时,会将异常抛出到catch语句中匹配异常类型,当异常和catch后面的异常类型相匹配时,则catch...

    C_Exception_Catch.rar_vc 异常_异常处理

    当一个异常发生时,执行流会立即跳转到相应的`catch`块,这样就可以在不影响其他代码的情况下处理问题。 1. **异常抛出(throw)**:当一个条件满足时,可以使用`throw`语句来引发异常。这通常发生在检测到一个错误...

    Java异常处理PPT教案学习.pptx

    在`try-catch`结构中,如果`try`块中的代码抛出了异常,控制流会立即跳转到匹配的`catch`块,执行相应的异常处理代码。 异常的捕获是Java运行时系统寻找并执行能够处理特定异常的方法的过程。每个`catch`块都对应一...

    Java异常处理

    4. 避免空的catch块,除非你确定可以忽略异常。 5. 使用finally块确保资源的释放。 了解并熟练应用Java的异常处理机制,可以提高代码的可读性、可维护性和整体质量,使得程序在面对异常情况时能够更加稳定和可靠。...

    ui处理异常.txto

    如果try块中抛出了与某个catch块匹配的异常,则该catch块将被激活,执行其中的代码以处理异常。值得注意的是,catch块不是必须存在的;但如果没有catch块,则try块必须与finally块一起使用。 - **finally**:此块...

    06JVM是如何处理异常的1

    当try块中的代码执行时,如果出现异常,控制权会立即转移到相应的catch块,如果没有catch块,JVM会尝试向上层的try-catch结构传递异常。 2. **catch 代码块**:紧随try块之后,用于捕获特定类型的异常。每个catch块...

    oracle认证的java考试(19)

    - **try-catch**:基本的异常处理结构,其中`try`块包含可能抛出异常的代码,而`catch`块则定义了处理异常的代码。可以有多个`catch`块,分别处理不同类型的异常。 ```java try { // 可能抛出异常的代码 } catch ...

    java异常处理精ppt课件.ppt

    - 嵌套`try/catch`块:在一个`try`块内再包含一个`try`块,处理更复杂的异常情况。 - `throw`和`throws`关键字:`throw`用于手动抛出异常,`throws`用于方法签名,声明可能会抛出的异常。 2. 示例代码分析: - ...

    最全Java异常处理超详解(建议收藏).pdf

    2. try-catch-finally:finally 关键字用来创建在 try 代码块后面执行的代码块,无论是否发生异常,finally 代码块中的代码总会被执行。 3. try-finally:try 块中引起异常,异常代码之后的语句不再执行,直接执行 ...

    北大青鸟JAVA培训教程-异 常

    2. **运用try块、catch块和finally块处理异常**:`try`块包含可能抛出异常的代码,`catch`块用于捕获并处理特定类型的异常。`finally`块则确保无论是否发生异常,其内的代码都会被执行,通常用于清理资源,如关闭...

    java异常处理PPT学习教案.pptx

    外层的`catch`块可以捕获所有内层`try`块抛出的异常,或者内层`catch`块可以单独处理。 6. **自定义异常**: 开发者可以通过创建新的异常类来扩展`Exception`或其子类,以表示特定应用程序领域的错误或异常情况。...

    C#语言提供了处理这种

    - **Catch 块**:用于捕获并处理由try块中发生的异常。 - **Finally 块**(可选):包含不管是否发生异常都会执行的代码,如资源清理等。 #### 异常类层次结构 在C#中,异常类遵循一种层次结构,这有助于开发者更加...

    深入java异常学习指南

    深入Java异常学习指南 ...5. **避免空catch块**:空的`catch`块可能会掩盖程序中的错误,应至少记录异常信息。 通过以上深入学习和理解,我们能够更加熟练地运用Java异常处理机制,编写出更稳定、更健壮的程序。

Global site tag (gtag.js) - Google Analytics