当前位置:  开发笔记 > 编程语言 > 正文

在Java中抛出异常

如何解决《在Java中抛出异常》经验,为你挑选了2个好方法。

我有一个关于在Java中抛出异常的问题,这似乎是我自己的一种误解,我想为自己澄清一下.

我一直在阅读处理异常代码的两种基本方法是:

1.)在一个带有"throw new ..."的try-block中抛出异常,然后立即在catch-block中捕获它 - 即所谓的try-throw-catch机制.

2.)在一个带有"throw new ..."的方法中抛出一个异常,然后在方法的标题中声明这个方法可能会抛出一个带有"throws ..."的异常 - 即所谓的pass-the-buck.

我最近读到过"抛出一个异常然后用相同的方法捕获它没有任何意义",这让我想到我是否以错误的方式理解了这个东西,或者写了这个东西的人有什么东西别的想法.处理异常的第一种方法不是这样(try-throw-catch机制)吗?我的意思是,它抛出异常并以相同的方法捕获它.我已经读过,在一个方法中抛出异常并在另一个方法中捕获它是一种更好的做法,但这只是一种(可能更好)的方法.另一种方式也是合法和正确的,不是吗?

请你对此发表评论吗?非常感谢你.



1> David Koelle..:

当该方法无法自行解决异常时,应该从方法抛出异常.

例如,FileNotFoundException抛出a 是因为FileInputStream本身无法处理文件丢失的情况; 该异常需要抛出,以便最终用户应用程序可以处理该问题.new FileInputStream(new File(filename))

在某些情况下,可以在方法中处理异常.例如,抛出a的Document模型方法BadLocationException可以在足够智能的方法中处理.根据问题,可以处理或重新抛出异常.

(无论如何,我认为在try-catch块中抛出异常以便执行catch块表示非常糟糕的逻辑流程)


))

2> starblue..:

我想你误解了第一个案子.通常,在调用可能引发异常的方法时,添加try-catch-block.捕获本地抛出的异常确实没有多大意义.特别是你不应该使用异常来退出循环,因为与标准方法相比,这是非常慢的.

推荐阅读
我我檬檬我我186
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有