`

总结一下 try...catch...finally 在一个方法作用域内的使用

    博客分类:
  • java
阅读更多

好像在 java 面试的时候关于异常的内容都是必问的东西,这里就不介绍有关异常的接口和主要的类了,也不讨论性能问题,就简单总结下 try...catch...finally 在一个方法作用域内的使用。

 

1,一个方法内可以有多个 try...catch...finally 语句块,还可以彼此嵌套;

public static String TestTry() {
		try {
			try {
				
			} catch (Exception e) {
				// TODO: handle exception
			} finally {
				
			}
		} catch (Exception e) {
			try {
				
			} catch (Exception e2) {
				// TODO: handle exception
			} finally {
				
			}
		} finally {
			try {
				
			} catch (Exception e2) {
				// TODO: handle exception
			} finally {
				
			}
		}
		
		try {
			
		} catch (Exception e) {
			// TODO: handle exception
		} finally {
			
		}
		return "return"; // 这里必须写
	}

 

2,如果一个有返回值的方法内有多个 try...catch...finally 语句块,return 语句要么写在任意一个 try...catch 内,要么写在方法的最后,否则编译无法通过,如果 return 语句写在方法的最后,那么以上 try...catch...finally 语句中的 每一个 finally 块内的代码都将会执行;

public static String TestTry2() {
		try {
			//return "hello1";
		} catch (Exception e) {
			// TODO: handle exception
		} finally {
			System.out.println("final1");
		}
		
		try {
			//return "hello2";
		} catch (Exception e) {
			// TODO: handle exception
		} finally {
			System.out.println("final2");
		}
		
		return "hello3"; // 这里必须写
	}

 

3,无论方法内是否发生异常(jvm 可以处理的异常),finally 块内的代码都将会执行。

public static String TestTry3() {
		try {
			return "hello";
			//return String.valueOf(9/0);
		} catch (Exception e) {
			// TODO: handle exception
		} finally {
			System.out.println("final");
		}
		return "re"; // 这里必须写
	}

 

0
0
分享到:
评论

相关推荐

    异常处理例子,try...catch,C#源代码,和大家分享

    3. 多个`catch`块:你可以在一个`try`语句后放置多个`catch`块来处理不同类型的异常。这使得你可以针对不同类型的异常执行不同的操作。例如: ```csharp try { // 可能抛出异常的代码 } catch (IOException ex) { ...

    C#中try...catch的使用与常见面试题分享

    `using`语句是另一种确保资源释放的方式,它在作用域结束时自动调用`Dispose()`方法。这可以看作是隐式的`try...finally`。 理解和熟练掌握`try...catch`机制对于编写健壮的C#代码至关重要。通过正确地处理异常,...

    javascript中的try catch异常捕获机制用法分析

    - **with语句**:尽管不推荐使用,但with语句与try...catch结合可以在动态作用域中捕获错误。 - **Promise**:在异步编程中,可以使用catch方法处理Promise的拒绝情况。 了解这些基本概念和使用技巧后,开发者...

    javascript中 try catch用法

    - 当使用try...catch包裹异步代码时(如事件处理、定时器回调等),应当注意异步代码的执行上下文可能与try...catch不在同一个作用域内,错误可能无法被直接捕获。 最后,根据文件内容提供的示例代码,这里还有一个...

    Java异常体系结构.pdf

    - `try`、`catch`和`finally`不能单独使用,它们可以组合成`try...catch...finally`、`try...catch`或`try...finally`的形式。 - 各个块内的变量作用域仅限于自身块,不能跨块访问。如果需要共享变量,应将其定义在...

    使用异常处理语句需要注意的几个问题

    5. **变量的作用域**:在`try`块内部声明的变量仅在`try`块内部有效,不能在`catch`或`finally`块中直接访问。然而,如果变量在`try-catch-finally`块之外声明,它们在整个代码块内都是可见的。 6. **检查异常的...

    Java异常体系结构[定义].pdf

    2. `try`、`catch`和`finally`块内的变量作用域仅限于各自块内,如果需要跨块访问,需要在外部定义。 3. 多个`catch`块时,JVM会按顺序匹配异常类型,匹配到第一个合适的`catch`块后,不会继续匹配后续的`catch`块。...

    java面试基础总结八股文.zip

    7. **异常处理**:知道如何使用try-catch-finally语句,理解不同类型的异常,以及自定义异常的创建。 8. **IO流与NIO**:掌握字节流、字符流、对象流的使用,理解缓冲区的概念,以及新IO(NIO)的相关特性。 9. **...

    2021-2022计算机二级等级考试试题及答案No.11123.docx

    A.try 代码块必须与 finally 代码块配对使用B.catch 代码块可以单独使用,不需要 try 代码块C.throw 用于抛出异常,通常在方法中使用D.try-catch-finally 结构中的 finally 代码块是可选的正确答案: ACD ...

    2014年Java最全面试题以及答案.

    局部内部类只能在定义它的方法或作用域中使用;匿名内部类适用于创建只需要一次使用的类对象;静态内部类不能访问外部类的实例变量,只能访问静态变量。 12. 用JAVA实现一种排序,JAVA类实现序列化的方法(二种)? ...

    C#监视应用程序所有非捕捉的异常和用TRY可捕捉的异常

    我们使用`try-catch`结构来捕获这个异常,并提供了一个特定的`catch`块来处理它。此外,还有一个通用的`catch`块用于捕获所有其他类型的异常。`finally`块确保无论是否发生异常,某些清理操作(如释放资源)总是会...

    javascript语言的模块化.

    3. **函数**:函数是一个重要的作用域容器,当函数被调用时,会创建一个新的作用域,该作用域内的变量仅在函数内部可见,这被称为局部作用域。 4. **全局**:全局作用域是所有其他作用域的基础,它包含了所有未在...

    java异常处理试题及答案.pdf

    15. 变量按作用域分类为局部变量(在方法内部定义)、类变量(静态成员变量)、方法参数以及实例变量(非静态成员变量)。 16. 捕获异常是通过`try-catch-finally`语句实现的,其中`try`块包含可能会抛出异常的代码...

    java基础知识总结带目录版.pdf

    5. 异常处理:Java使用try-catch-finally结构来捕获和处理异常,异常是程序运行时的错误,可以是编译时错误或运行时错误。 6. 接口:接口是一组方法签名的集合,用于定义类的行为规范。类可以实现多个接口,实现多...

    java面试宝典2012版

    在一个static方法内部不能直接调用非static方法,因为非static方法依赖于类的实例,而非static方法在没有对象实例的情况下就已经可以执行了。 14. Integer与int的区别? int是基本数据类型,而Integer是int的包装...

    C++嵌套的异常处理

    如果该异常没有被当前作用域内的`catch`块捕获,程序将向上回溯到最近的包含`try`块的上一级作用域,寻找合适的`catch`块来处理异常。如果没有找到匹配的`catch`块,异常将继续向更高级别的作用域传播,直到找到处理...

    java代码优化总结1.0版本.7z

    过度使用try-catch块会影响性能,尽量避免在finally块中进行耗时操作,因为无论是否发生异常,finally块都会被执行。只捕获必要的异常,避免使用Exception作为捕获类型,以确保问题定位的精确性。 同步和并发优化是...

Global site tag (gtag.js) - Google Analytics