问题: http://www.iteye.com/problems/77232
抛出异常:finally中的异常会先于try中的异常。
public static void test11() {
try {
System.out.println("try");
int i = 1 / 0;
} finally {
String s = null;
s.length();
System.out.println("finally");
}
System.out.println("end");
}
public static void test11_1() {
try {
test11();
} catch (Exception e) {
e.printStackTrace();
}
}
这段代码捕获到的异常是:
try
java.lang.NullPointerException
如果去掉String s部分,抛出的异常是:
try
finally
java.lang.ArithmeticException: / by zero
事务提交,trycatch写法:
http://wenku.baidu.com/view/17e2f56c1eb91a37f1115ca4.html第4页
Connection conn = null;
try{
conn = getConnection();
conn.setAutoCommit(false);
// do something
conn.commit();
}catch(Exception e){
conn.rollback();
// do sth
}finally{
try{
conn.close();
}catch(SQLException e){
// do sth.
}
//...
}
分享到:
相关推荐
1.需要完成的任务 使用UserDaoImp1类和User...(2)为了判断在finally块输出是否抛出异常,可以设置一个变量,在catch块里修改这个变量 实践四:使用log4j 需求说明 (1)使用log4j输出日志信息 (2)查看输出日志信息
自定义异常和抛出异常是Java异常处理机制的重要组成部分,它们允许开发者更精细地控制程序的错误处理流程。本篇文章将深入探讨这两个概念。 首先,让我们了解什么是自定义异常。Java提供了一套内置的异常类,如`...
总结一下,C#中的异常处理是通过异常格式(包括try-catch-finally结构)、抛出异常(使用`throw`关键字)和自定义异常(继承自`Exception`类)来实现的。掌握这些技巧,可以帮助我们在编写代码时更好地应对可能出现...
异常处理通过`try-catch-finally`块来实现,其中`try`块包含可能抛出异常的代码,`catch`块捕获并处理异常,`finally`块则包含无论是否发生异常都需要执行的代码。 在`throw`语句中,我们可以指定一个异常对象来抛...
本文将深入探讨C#中`finally`块的行为,特别是当它在执行过程中抛出异常时的情况。这个话题对于理解C#异常处理机制及其对程序流程的影响至关重要。 在C#中,`try-catch-finally`结构用于异常处理。`try`块包含可能...
在上述示例中,我们捕获了`IllegalArgumentException`并打印出异常消息。`e.printStackTrace()`方法用于打印异常发生时的堆栈跟踪,这对于调试非常有用,因为它显示了异常发生的确切位置和调用栈。 Java的异常处理...
如果`toantitone`方法抛出异常,`main`方法中的`catch`块会捕获它,并通过`e.printStackTrace()`打印堆栈跟踪,帮助调试。`finally`块确保无论是否发生异常,都会执行一段代码(在这里是打印"over")。 `toantitone...
`try`块包含可能抛出异常的代码,`catch`块用来捕获并处理异常,而`finally`块则包含无论是否发生异常都需要执行的代码: ```java try { // 可能抛出异常的代码 } catch (ExceptionType1 e1) { // 处理Exception...
// 这里抛出异常后,后面的代码不会执行了 } } public class Test { public static void main(String[] args) { Student s = new Student(); s.regist(-1); // 调用regist方法,传入负数 } } 情况2 2、手动抛普通的...
1. **try** 关键字:用于包围可能抛出异常的代码块。当try块中的代码抛出一个异常时,控制权会立即转移到与之匹配的catch块。 2. **catch** 关键字:用于捕获try块中抛出的异常。你可以有多个catch块来捕获不同类型...
- `finally`块包含在`try-catch`结构中,无论是否抛出异常,`finally`块的代码都会被执行,常用于释放资源。 通过合理的异常处理,Java程序员能够更好地控制程序流程,确保程序在遇到错误时优雅地终止,而不是突然...
2. **异常处理**:在Java中,异常处理是通过try-catch-finally语句块实现的,而在C/C++中,错误通常通过返回错误码或抛出异常来表示。JNI中,Java的异常机制无法直接应用于本地代码,因此需要特殊处理。 3. **JNI中...
MFC对C++的异常处理进行了封装,提供了AfxThrowException、AfxThrowMemoryException等函数,便于在MFC环境中抛出异常。MFC的CException类是所有MFC异常的基类,可以派生出各种特定类型的异常。在MFC应用中,通常会在...
`finally`块是可选的,无论`try`和`catch`块中的代码是否抛出异常,`finally`块里的代码都会被执行。这通常用于资源清理,如关闭文件流、网络连接等。即使在`try`或`catch`块中有return语句,`finally`块的代码也会...
- 即使构造函数抛出异常,`finally`块仍然会被执行,这在清理资源(如关闭文件流、释放网络连接等)时非常有用。 - 如果类实现了`IDisposable`接口,确保在构造函数抛出异常后正确处理资源,可以使用`Dispose()`...
3. **Finally块**:无论`try`块是否抛出异常,`finally`块都会被执行。在这个例子中,`finally`块中也包含了一个`return`语句,返回值为`20`。 **结论**:无论是否有异常发生,`finally`块总是最后执行的。因此,在...
在任务十四“主动出击(抛出异常)”中,主要讲述了如何在Java程序中主动抛出异常以及声明和处理异常。 1. **抛出异常**: - 在Java中,如果遇到不符合预期的情况,可以使用`throw`关键字抛出一个异常对象。例如,...
当Java执行到可能抛出异常的代码行时,如果确实发生了异常,那么控制权就会立即转移到与之关联的`catch`块。 `catch`块是用来捕获和处理异常的地方。每个`catch`块都对应一个特定的异常类或者异常类的父类,这样就...
抛出异常是指程序中出现错误时,抛出异常对象,以便于捕获和处理异常。捕获异常是指使用 catch 语句捕获抛出的异常对象,并进行相应的处理。 实验代码 ```java class Example1 { static void method() { int a = ...
总结来说,C#中的异常处理机制提供了优雅的方式来处理运行时错误,通过`throw`关键字可以抛出异常,结合`try-catch-finally`结构进行捕获和处理。了解并熟练掌握这些用法,有助于编写健壮且易于维护的代码。