2013-11-09 32 views
0

下面是一个示例代码,我在此处引发异常,出于某种原因,它没有try/catch代码块就可以很好地工作。抛出方法异常:它在哪里处理?

我必须在这个方法里面处理这个“EntryDelete” 或 我必须处理这个方法从哪里调用吗? 如果我能看到一个例子,那么我需要在那里导入什么?什么是可接受的语法或方法来做到这一点?

public boolean EntryDelete(int entryId) throws SQLException{ 
    this.open(); 
    kDatabase.delete(kENTRY_TABLE, kENTRY_ENTRY_ID + "=" + entryId, null); 
    this.close(); 
    return true;    
} 

编辑:在处理方法内部和外部的异常的想法是什么?

在方法内处理的好处是什么,在方法外处理它的好处是什么?

感谢

+1

优点很简单,它强制调用者捕捉可能的异常,并在理论上导致更好的代码。但是,'e.printStackTrace()'似乎是一般的异常处理程序。 – Simon

回答

1

抛出的异常是由该方法的调用者这里,不是这种方法本身处理(进一步抛出或捕获)。当然,你也可以在这里处理它,通过在这里添加try-catch,但是因为你的方法迫使调用者处理可能抛出的异常。

在回答你的问题补充:

“?请告诉我的方法中处理,好处什么的处理它的方法之外的利益”

不幸的是,我能想到的最全面的正确答案是处理方法内部异常的好处是不必在方法外处理它。一般来说,越早处理异常越好,因为通常不希望强制任何人调用您的方法来准备任何非必要的异常。

1

由于该方法具有

throws SQLException 
在签名

所以调用这个方法的方法将不得不处理这个异常。

编辑:有没有经验法则,但from您可以使用下面的指南

如果客户端可以采取一些其他操作从异常中恢复,然后抛出异常。如果客户端无法做任何有用的事情,请处理异常情况。通过使用,我的意思是采取措施从异常中恢复,而不仅仅是记录异常。