- 浏览: 499727 次
- 性别:
- 来自: 沈阳
文章分类
- 全部博客 (437)
- Windows设置 (2)
- oracle数据库 (39)
- bug--jsp (4)
- j2se (13)
- js (40)
- bug-tomcat不能启动程序 (1)
- Hibernate (29)
- eclipse (20)
- java (65)
- 设计模式 (6)
- bug (18)
- PL/SQL (11)
- 前台 (5)
- 杂谈 (25)
- UML (1)
- jdbc编程 (2)
- 技术调研 (1)
- 数据通信 (2)
- ios (1)
- servlet自学笔记 (10)
- tomcat (9)
- SQL学习笔记 (6)
- java工具 (1)
- 数据库设计 (4)
- javascript (10)
- jsp (11)
- struts (17)
- ajax (7)
- linix/Unix (6)
- 资源 (3)
- spring (14)
- 算法 (5)
- 计算机网络 (2)
- http (5)
- c++ (2)
- web应用 (3)
- jvm (5)
- java中的字符编码 (14)
- java代码库 (2)
- classloader (1)
- 读书笔记 (1)
- c (1)
- 开源软件 (1)
- svn (1)
- AOP (1)
- java序列化 (1)
- 多线程 (4)
- The legendary programmers (1)
- Apache http Server (1)
- html tag (3)
- struts1.X学习笔记 (5)
- buffalo (1)
- 自己收藏 (0)
- TOEFL(IBT) (1)
- 网络翻墙 (0)
- 编译原理 (1)
- 书籍推荐 (1)
- css (10)
- javaee环境搭建资料 (1)
- 开源工具 (1)
- 美国生活 (1)
- spring自学 (3)
- log4j (3)
- 算法与数据结构 (5)
- 病毒,插件处理大全 (1)
- flex (2)
- webservice (1)
- git (7)
- cs (1)
- html (4)
- javaee (6)
- 开车 (0)
- springmvc (3)
- 互联网架构 (2)
- intellij idea (18)
- maven (15)
- mongodb (2)
- nginx (1)
- react (3)
- java基础例子 (2)
- springboot (2)
- 培训 (5)
- mysql (3)
- 数据库 (3)
- 生活 (2)
- intellij (3)
- linux (2)
- os (3)
最新评论
-
潇洒天涯:
[color=blue][color=cyan] ...
oracle 通过 nvl( )函数sql 查询时为 空值 赋默认值 -
hekai1990:
受教了..
oracle中的varchar2
写java程序经常碰到异常,try-catch-finally与return的执行顺序不是很清晰,总是调整到编译通过就放在那里了,没有细致的研究过,碰到的次数多了,很烦!
测试一下(一):只有try-catch return语句在try里面。javac Test.java编译时报错:缺少返回语句。
return语句放在catch后面,成功。
public class Test{
public static void main(String args[]){
System.out.println(a());
}
private static String a(){
try{
//throw new Exception();
System.out.println("In TRY");
return "返回值";
}catch(Exception e){
System.out.println("In Catch");
}
//finally{
//System.out.println("In FINALLY");
//return "返回值";
//}
//System.out.println("Afer finally In Return");
}
}
测试二:
public class Test{
public static void main(String args[]){
System.out.println(a());
}
private static String a(){
try{
//throw new Exception();
System.out.println("In TRY");
return "返回值";
}catch(Exception e){
System.out.println("In Catch");
}
finally{
System.out.println("In FINALLY");
}
//System.out.println("Afer finally In Return");
return "返回值";
}
}
结果:
In TRY
In FINALLY
返回值
测试(三):return在finally前面,编译报错finally不带有try块。
public class Test{
public static void main(String args[]){
System.out.println(a());
}
private static String a(){
try{
//throw new Exception();
System.out.println("In TRY");
return "返回值";
}catch(Exception e){
System.out.println("In Catch");
}
return "返回值";
finally{
System.out.println("In FINALLY");
}
//System.out.println("Afer finally In Return");
}
}
测试(四):返回值在finally块里面:
public class Test{
public static void main(String args[]){
System.out.println(a());
}
private static String a(){
try{
//throw new Exception();
System.out.println("In TRY");
return "返回值";
}catch(Exception e){
System.out.println("In Catch");
}
finally{
System.out.println("In FINALLY");
return "返回值";
}
//System.out.println("Afer finally In Return");
}
}
结果:与测试二一样。
测试(四):
public class Test{
public static void main(String args[]){
System.out.println(a());
}
private static String a(){
try{
//throw new Exception();
System.out.println("In TRY");
return "返回值";
}catch(Exception e){
System.out.println("In Catch");
}
System.out.println("Afer Catch before finally !");
finally{
System.out.println("In FINALLY");
return "返回值";
}
//System.out.println("Afer finally In Return");
}
}
结果:编译报错 finally不带有try。说明try-catch-finally必须连在一起中间不能有语句。
结论:try-catch-finally必须连在一起中间不能有语句。return语句只能放到finally块得后面或者是finally块里面的最后一句话。即程序的最后面。即try-(catch)-finally-return的顺序执行。
发表评论
-
【转】JAVA泛型通配符(PECS)
2018-07-29 10:43 510在JAVA的泛型集合中,默认都可以添加null,除此以外, ... -
Differences between notify() and notifyAll()
2018-07-16 09:01 517Notification to number of th ... -
【转】深度解析Java多线程的内存模型
2018-07-16 09:00 481https://www.jianshu.com/p/a3f ... -
【转】java rmi
2018-01-03 18:57 392此处讲的是Java中的RMI ... -
Java Annotation认知(包括框架图、详细介绍、示例说明)
2017-10-09 19:49 385摘要 Java Annotation是JDK5.0引入的 ... -
【转】web.xml 配置404和500错误的自定义页面
2016-01-03 15:16 1302web.xml Xml代码 &l ... -
关于java的binding
2013-06-16 22:51 654//file: MyMain.class class B ... -
【转】web.xml 中的listener、 filter、servlet 加载顺序及其详解
2012-08-23 11:09 782在项目中总会遇到一些关于加载的优先级问题,近期也同样遇到过 ... -
【转】web.xml中listener的作用及使用(转)
2012-08-23 11:07 843概述: Servlet监听器用于监听一些重要事件的发生, ... -
html中get和post的区别
2012-06-06 09:48 9801. get是从服务器上获取数据,post是向服务器传送数据。 ... -
【转】Request的getParameter和getAttribute方法的区别
2012-05-29 15:42 847HttpServletRequest.getParameter ... -
【转】Java程序员的良药:应用程序的开发技巧
2012-05-11 18:04 740【IT168 技术】 假如你是一名Java开发者,正在开发 ...
相关推荐
标题 "try-catch-finally-return-in-finally.rar_return" 提到了 `try-catch-finally` 结构与 `return` 语句的交互,这涉及到程序执行流程的关键方面。 `try` 块是用来包含可能会抛出异常的代码。如果在 `try` 块中...
try-catch-finally语句是Java语言中一种常用的异常处理机制,当程序在执行过程中出现异常时,可以使用try-catch-finally语句来捕获和处理异常。下面将详细介绍try-catch-finally语句的使用方法和注意事项。 一、try...
即使在`try`或`catch`块中有return语句,`finally`块的代码也会被执行。 5. **多层嵌套** 你还可以在`try-catch-finally`结构内部嵌套另一个`try-catch-finally`结构,以处理更复杂的情况。这种方式使得异常处理...
try、catch、finally、return 执行顺序详细讲解 try、catch、finally、return 执行顺序是 Java 编程语言中的一种 exception 处理机制,用于处理程序中的异常情况。下面我们来详细讲解 try、catch、finally、return ...
即使`try`或`catch`块中存在`return`语句,`finally`块的代码也会被执行。这确保了程序的整洁和资源的有效管理。 在Java中,`try-catch-finally`结构可以单独使用,也可以嵌套使用。嵌套的`try-catch-finally`允许...
2. 如果`finally`块有`return`语句,无论`try`块是否包含`return`,`finally`块的`return`语句都将决定最终的返回值,因为`finally`总是被执行。 理解这一点对于编写健壮、可靠的Java代码至关重要,特别是涉及资源...
try-catch-finally执行顺序验证(左边是.java文件,右边是.class文件) 提示: try、catch块内的return操作编译后会变成把return的值保存到变量var的操作。 总结: try、catch块内的return操作编译后会变成把return的值...
第一:return语句并不是函数的终出口,如果有finally语句,这在return之后还会执行finally(return的值会暂存在栈里面,等待finally执行后再返回) 第二:finally里面不建议放return语句,根据需要,return语句...
在 try-catch-finally 结构中,finally 语句块的执行顺序是非常重要的。下面我们来详细探讨 finally 语句块与 return 的执行关系。 首先,需要了解的是,在 try-finally 或者 catch-finally 中,如果 try 或者 ...
Condition 3: try中有异常,try-catch-finally里都没有return ,finally 之后有个returntry中有异常以后,根据
即使在`try`或`catch`块中有`return`语句,`finally`块中的代码也会被执行: ```java try { // 代码 } catch (ExceptionType1 e1) { // 处理 } catch (ExceptionType2 e2) { // 处理 } finally { // 清理资源,...
即使在try或catch块中有return语句,finally块中的代码也会被执行。 4. **throw**:程序员可以使用throw关键字手动抛出一个异常,这在检测到错误条件时非常有用。 5. **throws**:如果方法可能抛出异常但不处理,...
在Java的异常机制中,如果finally中含有return语句,则try和catch中的return语句将会被JVM忽视
在这个过程中,函数会将`try`或`catch`块中的`return`语句返回的值暂存起来,然后执行`finally`块。 如果在`finally`块中也有`return`语句,那么这个`return`值会覆盖之前暂存的值。也就是说,最终返回给调用者的值...
即使`try`或`catch`块中有`return`语句,`finally`块的代码仍然会被执行。 `throw`关键字用于手动抛出一个异常。程序员可以在检测到错误条件时主动抛出异常,而不是等待Java运行时系统自动抛出。 ```java throw ...
在Java编程语言中,`finally`语句块是一个非常关键的结构,用于确保特定代码无论在...理解`finally`的执行顺序对于编写健壮的、易于维护的代码至关重要。在实际开发中,我们应该充分利用这一特性来提高代码的可靠性。
如果try块中的异常与`catch`块的异常类型匹配,那么对应的`catch`块就会被执行。如果所有`catch`块都不匹配,异常将继续向调用栈传递。 - `finally`块包含的代码无论是否发生异常都会执行,通常用来进行资源清理等...
- 即使`return`语句在`try`或`catch`块中出现,`finally`块的代码也会在返回之前执行。但要注意,`finally`块中的`return`语句会覆盖掉`try`或`catch`中的`return`结果。 3. 示例代码: ```java try { // 可能...
即使在`try`或`catch`块中有`return`语句,`finally`块的代码也会被执行。 ```csharp finally { // 无论是否发生异常都会执行的代码 } ``` 在示例中,无论`j`的值是否为0,`finally`块的`Console.WriteLine(j....
本示例中的"trycatch.zip"文件内容就是展示了如何在Golang中模拟`try...catch`和`try...catch...finally`。 Golang的核心错误处理方式是通过返回错误值。通常,函数会返回一个错误值,如果在执行过程中遇到问题,就...