`

异常 之 finally的特殊处理

    博客分类:
  • J2SE
 
阅读更多
http://java.chinaitlab.com/experience/860321_2.html

1、不能在finally块中执行return,continue等语句,否则会把异常“吃掉”;
  2、在try,catch中如果有return语句,则在执行return之前先执行finally块
  请大家看下面的例子:
  public class TryTest {
  public static void main(String[] args) {
  try {
  System.out.println(TryTest.test());// 返回结果为true其没有任何异常
  } catch (Exception e) {
  System.out.println(“Exception from main”);
  e.printStackTrace();
  }
  doThings(0);
  }
  public static boolean test() throws Exception {
  try {
  throw new Exception(“Something error”);// 第1步。抛出异常
  } catch (Exception e) {// 第2步。捕获的异常匹配(声明类或其父类),进入控制块
  System.out.println(“Exception from e”);// 第3步。打印
  return false;// 第5步。 return前控制转移到finally块,执行完后再返回(这一步被吃掉了,不执行)
  } finally {
  return true; // 第4步。 控制转移,直接返回,吃掉了异常
  }
  }
  public static void doThings(int i)
  {
  try
  {if(i==0)
  {
  //在执行return之前会先执行finally
  return;
  }
  int t=100/i;
  System.out.println(t);
  }catch(Exception ex)
  {
  ex.printStackTrace();
  }
  finally
  {
  System.out.println(“finally”);
  }
  }
  }
分享到:
评论

相关推荐

    JCVM异常处理机制

    这种方法使得JCVM能够在遇到异常时快速定位到正确的处理代码,并执行相应的`catch`块或`finally`块。这不仅简化了异常处理流程,还提高了智能卡应用程序的执行效率。 #### 三、JCVM异常处理机制的设计与实现 在...

    C++异常处理技巧try/catch/throw/finally/exception

    结构化异常处理是Windows平台上的一个特殊异常处理机制,主要用于处理特定类型的异常,如访问违规或非法指令等。对于Windows程序员来说,掌握SEH是非常必要的,因为它可以帮助开发者处理那些可能无法通过普通的C++...

    浅析JAVA异常处理机制.pdf

    异常处理的好处之一是可以先专注于解决问题,然后在其他地方处理代码中的错误: - 一个`try`子句可能抛出多种不同的异常,这就要求定义多个`catch`子句来捕获不同类型的异常。 - 每个`catch`子句接收并处理一种异常...

    高效java异常处理机制

    在Java编程中,异常处理是程序健壮性的重要组成部分,它确保了程序在遇到错误时能够优雅地处理问题,而不是突然崩溃。本文将深入探讨Java的异常处理机制,结合"Effective Java Exceptions"文档中的观点,来揭示如何...

    金融系统常用异常处理

    1. 异常捕获:通过编程语言提供的异常处理机制(如Java的try-catch-finally,Python的try-except-finally等),捕获运行时发生的异常。 2. 异常日志记录:详细记录异常信息,包括时间、位置、异常类型、堆栈跟踪等,...

    工作流系统异常处理实现方法

    1. **异常处理的基本框架**:基于TRY-CATCH-FINALLY模式构建工作流异常处理的基本框架,但需适应工作流系统的特殊需求,例如人工干预和异常发生处的继续执行。 2. **事务机制的应用**:利用事务机制来保证工作流任务...

    C#异常处理

    - **捕获异常**:开发者可以通过`try`、`catch`和`finally`等关键字来捕获并处理异常。 #### 二、异常处理方法 ##### 1. try...catch 语句 - **try块**:用来指定可能会抛出异常的代码段。 - **catch块**:用于...

    异常的分类以及处理方法

    在编程领域,异常处理是确保程序稳定性和健壮性的关键机制之一。尤其在Java这样的面向对象语言中,异常处理尤为重要。本文将重点介绍异常的基本分类及其处理方法,并针对“有时无法catch exception,这时需要考虑...

    java 异常处理练习

    在这个“java 异常处理练习”中,我们将深入探讨`try-catch-finally`、`throw`和`throws`关键字的使用,以及它们在确保程序稳定性和可靠性中的作用。 1. **try-catch-finally**:这是Java异常处理的核心构造,用于...

    Java异常处理.pdf

    捕获和处理异常可以使用 try...catch...finally 结构来实现,语句格式为: ``` try { 可能出现异常的语句 } catch (异常类名 异常对象名) { 异常类中处理代码 } finally { 必须执行的语句 } ``` 其中,try 块将一...

    15.python异常处理1

    finally 语句块是 Python 异常处理机制的最后一个部分,它用于定义无论是否出现异常都需要执行的代码段。finally 语句块通常用于释放资源和关闭文件等操作。 在 Python 中,还有一些其他的异常处理机制,例如 debug...

    全局未捕获异常处理示例

    异常处理通过try-catch-finally语句块来实现,当try块中的代码抛出异常时,catch块会捕获并处理异常,finally块则确保某些代码(如资源清理)无论是否发生异常都会执行。 2. **Android的异常处理**:与Java不同,...

    Java 异常处理面试集锦及答案20道

    1. **Java异常处理机制**:Java异常处理是通过一组关键字(try、catch、finally、throw和throws)来实现的,这些关键字帮助我们检测、捕获和处理异常。当程序中出现异常时,会触发异常对象的创建,并通过调用栈传递...

    Java异常是Java提供的一种识别及响应错误的一致性机制,Java异常机制可以使程序中异常处理代码和正常业务代码分离,保证程序

    `try`块包含可能会抛出异常的代码,`catch`块用来捕获并处理异常,`finally`块则包含无论是否发生异常都需要执行的代码,比如资源的释放。 Java 7引入了`try-with-resource`语句,可以自动关闭实现了`AutoCloseable...

    java异常处理

    - 不要忽略异常:即使捕获异常后没有特殊处理,也应该至少打印一条错误消息,以便追踪问题。 - 避免过度使用通用异常:尽量捕获和处理特定异常,而不是一律使用Exception。 - 使用finally块确保资源释放:对于需要...

    wince 结构化异常处理

    **结束处理的特殊语法**包括`__leave`关键字,它允许直接从受保护的代码块跳转到`__finally`块,而不经过正常的出口。此外,`AbnormalTermination()`是一个内部函数,用于判断是否通过异常方式进入`finally`块,如果...

    第十八章异常(Exception)处理

    异常(Exception)是Java中一种特殊的运行错误对象,它代表了程序执行期间发生的非正常情况,需要进行处理以避免程序中断。 18.1 异常类结构与组成 Java中的异常都源自`java.lang.Throwable`类。Throwable有两个...

    软件工程中的错误处理与异常处理.pptx

    - **可恢复性**:处理异常的目标之一是让程序能够恢复正常运行。 - **可追踪性**:记录异常信息,以便后续分析和追踪。 #### 第二章:错误处理的策略 **预防性策略** - **编码规范**:制定严格的编码准则,减少因...

    finally分析

    终止处理程序(Termination Handler)是Windows结构化异常处理(SEH, Structured Exception Handling)机制的一部分,主要用于确保某些重要的清理工作能够被执行,即使是在程序出现异常或正常退出的情况下。...

Global site tag (gtag.js) - Google Analytics