绪论
看到一篇文章,介绍 try-catch-finally 的执行顺序,在此记录一下。回头再试试Java中是不是也这样。
正文
<!DOCTYPE html>
<div lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>aa</title>
<script src="js/jquery-2.2.4.min.js"></script>
<link rel="stylesheet" type="text/css" href="css/index.css">
<style>
</style>
</head>
<body>
</body>
<script>
$(document).ready(function () {
test();
console.log(test1());
console.log(test2());
console.log(test3());
});
// 执行顺序test_try、test_finally
function test() {
try {
console.log('test_try');
} finally {
console.log('test_finally');
}
}
// 执行顺序test_1_try、test_1_finally、test_1_try_return
function test1() {
try {
console.log('test_1_try');
return 'test_1_try_return';
} finally {
console.log('test_1_finally');
}
}
// 执行顺序test_2_try、test_2_finally、test_2_finally_return
function test2() {
try {
console.log('test_2_try');
return 'test_2_try_return';
} finally {
console.log('test_2_finally');
return 'test_2_finally_return';
}
}
// 执行顺序test_3_try、throw、test_3_finally、test_3_catch
function test3() {
try {
console.log('test_3_try');
throw new Error('throw');
} catch (error) {
console.log(error.message);
return 'test_3_catch';
} finally {
console.log('test_3_finally');
}
}
</script>
</div>
结果
(若有什么错误,请留言指正,3Q)