有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java:异常处理中的未知错误

我有个奇怪的问题。今天我在班上做了个小测验。测验的一部分是在一小段代码中发现并纠正错误。其中一个问题是这样的

 class Example {
    public static void main(String[] args) {
        try {
            System.out.println("xyz");
        } catch (Exception e) {
            System.out.println("Exception caught");
        } finally {
            System.out.println("abc");
        }
    }
 }

我以为程序中没有错误,但我的教授坚持认为有错误。有人能猜出错误是什么吗


共 (3) 个答案

  1. # 1 楼答案

    如果与IOException一起使用,下面的代码段将抛出编译错误,因为System.out.println永远不会抛出IOException,但可以抛出ExceptionThrowable,这是它的超类

    try {
        System.out.println("xyz");
    } catch (IOException e) {
        //simple display error statement here
    } finally {
        //simple print statement here
    }
    
  2. # 2 楼答案

    “错误”可能是您不需要在此处处理任何异常:System.out.println未指定任何选中的异常。它可能只是:

    public static void main(String[] args) {        
         System.out.println("xyz");        
    }
    

    由于Exception类既包含检查的异常,也包含未检查的异常,因此如果在此处添加catch块,在这种情况下,您将只处理未检查的异常,通常不应处理这些异常

  3. # 3 楼答案

    嗯,我看不到任何东西会阻止这个编译,但我确实看到了一些问题。首先,有一些注释表明存在不存在的代码。注释与代码不同步总是一个问题。 [编辑:缩进错误已被编辑掉]并且您正在捕获异常e,这是您真的不应该做的。您应该始终捕获预期会遇到的特定异常,并具体处理它。因为这个系统也不例外。出来println可以抛出,这将使整个异常处理块成为一个问题