有 Java 编程相关的问题?

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

Java中是否存在类似于Python的异常?

我是Java新手,我想知道Java是否有类似Python异常处理的功能,不必指定异常类型。比如:

try:
    f = open('text.tx', 'r')
except:
    #Note you don't have to specify the exception
    print "There's an error here"

我希望你能帮助我


共 (3) 个答案

  1. # 1 楼答案

    Java中的每个异常都是java.lang.Exception的某种扩展。所以你可以一直这样做:

    try {
       // something that maybe fails
    } catch (Exception e) { 
       // do something with the exception
    }
    

    它将捕获任何其他类型的异常,如果不进行调试,您就不知道实际的异常是什么

  2. # 2 楼答案

    不能忽略异常类型,但最宽的try-catch块是:

    try {
        // Some code
    } catch(Throwable t) {
        t.printStackTrace();
    }
    

    它捕获ExceptionsErrors和实现Throwable的任何其他类,这些类可能是您想要抛出的

    在任何地方使用它都是非常愚蠢的,尤其是在像文件访问这样简单的事情上IOException是一个已检查的异常,因此每当您执行文件操作时,编译器都会提醒您处理该异常。没有必要做一个包罗万象的测试,它只会让你的代码更加脆弱

  3. # 3 楼答案

    是的,有一个叫做“尝试并抓住”的块,它看起来像这样:

    try
    {
       //Code that may throw an exception
    }catch(Exception e)
    {
       //Code to be executed if the above exception is thrown
    }
    

    对于上面的代码,可以这样检查:

    try
    {
        File f = new File("New.txt");
    } catch(FileNotFoundException ex)
    {
        ex.printStackTrace();
    }
    

    希望这有助于了解更多信息:https://docs.oracle.com/javase/tutorial/essential/exceptions/