首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Java编程时如何处理异常?

用Java编程时如何处理异常?
EN

Stack Overflow用户
提问于 2013-12-10 19:23:03
回答 4查看 426关注 0票数 0

最近我在学习Java,我意识到在我的代码中处理异常是很重要的。

我只想问一下如何用各种方法处理异常?

它是为了检查我使用的方法来查看该方法抛出了什么异常吗?在下面的示例中,我必须查看m()方法抛出的异常。

代码语言:javascript
复制
try {
    m();
} catch(SomeException e) {
    ...;
}

在用Java编程时,有没有处理异常的思路?

EN

回答 4

Stack Overflow用户

发布于 2013-12-10 19:40:10

要学习的主要技能是如何不捕获异常,而是让它们在调用堆栈中向上传播到适当级别的异常处理程序中。

一些经验法则:

只有当你有一个实际的退出路线时,

  • 才能提前捕获异常(接近它出现的地方),在progress;
  • either中以不同的方式完成请求记录异常或重新抛出它,而不是两者都有;
  • 调用堆栈中最高的位置称为异常屏障:这是将异常记录为错误的唯一位置;
  • 不要被选中的异常误导:大多数情况下,选中/未选中的区别并不明显。当您脑海中没有要恢复的代码时,重新抛出检查过的异常(包装在RuntimeException中),这在大多数情况下都是这样的。您也可以在方法标头中声明异常,但这很少实用;
  • 要非常小心,不要让异常导致资源泄漏:所有获取的资源都必须在finally块中释放。

阅读这些行,你会注意到围绕异常的大多数问题在最小的教科书示例中是不明显的。fat代码库中的信息流和控制流是例外。

票数 2
EN

Stack Overflow用户

发布于 2013-12-10 19:26:17

通常情况下,至少需要记录异常。以及什么时候

捕捉异常,确保catch块不为空。

其中一些你可以处理,一些你不能处理(对于他们你

通常需要修复您的代码,因为它们指出了代码中的错误)。

所以有些是意料之中的,另一些是编程错误。

有些是RuntimeExceptions (未选中),有些不是RuntimeExceptions

(即已选中)。RuntimeExceptions您不需要在方法中声明

或者catch (也就是说,你不是被语言本身强迫这样做的)。

http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html

http://docs.oracle.com/javase/7/docs/api/java/lang/RuntimeException.html

这个主题太宽泛了。

票数 1
EN

Stack Overflow用户

发布于 2013-12-10 19:26:55

你真的需要在异常处理上做一些tutorials,你可以使用:

代码语言:javascript
复制
        try {
            m();
        } catch(Exception e) {
            e.printStackTrace();
        }

来查看抛出了什么异常,然后阅读它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20493135

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档