如何处理Java异常处理中的throws子句?

时间:2010-09-04 09:15:26

标签: java android javadoc

我有一个A类,其中有一个方法openfileConnec()。它写得如下:

public void openfileConnec() throws Exception {
    //code for opening a file
}

现在我来到B级,我会像下面这样称呼这个方法:

class B {
    try {
        openfileConnect()
    }
    catch(Exception e) {
    }
}

我在接受采访时被问到如下问题:

  1. 为什么该方法在声明中有抛出异常?是否在实现中调用的方法抛出基类异常?
  2. 此外,如果我们在调用方法(fileConnect())期间遇到异常,则控制转到catch块。执行catch后控件应该去哪里,应该将什么发送到基本情况?
  3. 任何人都可以帮我解决这个问题吗?在此先感谢。

2 个答案:

答案 0 :(得分:1)

  

我在接受采访时被问到一个问题   如下:为什么方法有一个   在声明中抛出异常?

因为它想告诉方法调用者有什么问题,方法调用者应该决定如何解决这个问题(例外)。

  

是否在调用的方法中   实现抛出了基础   类异常?

这也是事实,但是一个方法可以决定抛出新的Exception本身。因为它希望让来电者决定不解决问题本身。

  

执行catch之后应该在哪里   控制去,应该发送什么   基础案例?

它的调用者是如何处理错误的。 (例如,显示错误消息并通知用户或执行其他操作)它可以调用。

答案 1 :(得分:0)

openfileConnec()方法有一个throws声明,因为打开文件会抛出IOException(如果文件不存在,或者例如不可读)。

如果在方法中未管理此异常,则该方法必须声明抛出异常。