java try catch finally语句详细介绍

KLQ 2020-09-01 09:41:11 java常见问答 5191

之前给大家介绍一下java try catch语句,那么下面要继续给大家介绍的就是java try catch finally语句,一起通过文章来了解了解吧。

finally语句能够和之前介绍的try catch语句块匹配使用。

下面是语法格式:

try
{
    // 可能会发生异常的语句
}
catch (ExceptionType e)
{
    // 处理异常语句
}
finally
{
    // 清理代码块
}

对于上面的格式,不管是否发生异常(特殊情况除外),finally语句块当中的代码都会被执行。

除此之外,finally语句也能够与try语句匹配使用。

下面是语法格式:

try
{
    // 逻辑代码块
}
finally
{
    // 清理代码块
}

使用try-catch-finally语句注意点:

使用try-catch-finally语句注意点

通常,不管是否有异常拋出,都会执行finally语句块中的语句。

try catch finally语句执行流程图:

try catch finally语句执行流程图

try catch finally语句块的执行情况可以分成下面的三种情况:

假如,try代码块中没有拋出异常,那么,执行完try代码块之后直接执行finally代码块,之后,执行try catch finally语句块之后的语句。

假如,try代码块中拋出异常,并被catch子句捕捉,那么在拋出异常的地方终止try代码块的执行,转而执行相匹配的catch代码块,之后执行finally代码块,假如,finally代码块当中,没有拋出异常,那么就继续执行try catch finally语句块之后的语句;假如,finally代码块当中,拋出异常,那么,就将异常传递给该方法的调用者。

假如,try代码块中拋出的异常没有被任何catch子句捕捉到,那么将直接执行finally代码块中的语句,并将这个异常传递给该方法的调用者。

除非在try块、catch块中调用了退出虚拟机的方法System.exit(int status),否则不管在try块或者catch块中执行怎样的代码,出现怎样的情况,异常处理的finally块总会执行。

一般的情况之下,不在finally代码块中使用return或throw等导致方法终止的语句,否则将会导致try和catch代码块中的return和throw语句失效。

示例:

Windows系统启动之后,即使不作任何操作,在关机时都会显示“谢谢使用”。

下面编写java程序使用try catch finally语句这个过程。

代码实现:

import java.util.Scanner;
public class Test04
{
    public static void main(String[] args)
    {
        Scanner input = new Scanner(System.in);
        System.out.println("Windows 系统已启动!");
        String[] pros = {
            "记事本"
            , "计算器"
            , "浏览器"
        };
        try
        {
            // 循环输出pros数组中的元素
            for (int i = 0; i < pros.length; i++)
            {
                System.out.println(i + 1 + ":" + pros[i]);
            }
            System.out.println("是否运行程序:");
            String answer = input.next();
            if (answer.equals("y"))
            {
                System.out.println("请输入程序编号:");
                int no = input.nextInt();
                System.out.println("正在运行程序[" + pros[no - 1] + "]");
            }
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
        finally
        {
            System.out.println("谢谢使用!");
        }
    }
}

上面的代码在main()方法中使用try catch finally语句模拟了系统的使用过程。

在系统启动之后,显示提示语,不管是否运行了程序,或者在运行程序时出现了意外,程序都将执行finally块中的语句,也就是显示“谢谢使用!”。

输出时的结果:

Windows 系统已启动!
1:记事本
2:计算器
3:浏览器
是否运行程序:
y
请输入程序编号:
2
正在运行程序[计算器]
谢谢使用!
Windows 系统已启动!
1:记事本
2:计算器
3:浏览器
是否运行程序:
y
请输入程序编号:
5
谢谢使用!
java.lang.ArrayIndexOutOfBoundsException: 4
    at text.text.main(text.java:23)
Windows 系统已启动!
1:记事本
2:计算器
3:浏览器
是否运行程序:
asdfasd
谢谢使用!

关于java try catch finally语句就给你介绍到这里了,更多相关常见问题,请继续关注奇Q工具网来进行了解和学习吧。

推荐阅读:

java异常处理的机制及基本的语句结构详细介绍

java Error和Exception的异同介绍

java异常(Exception),异常简介