Tag: exception

在Java中的Rethrowexception

关于在Java中重新抛出exception,我有一个非常简单的问题。 这是代码片段: public static void main(String[] args) throws FileNotFoundException { try { FileReader reader = new FileReader(“java.pdf”); } catch (FileNotFoundException ex) { throw ex; } } public static void main(String[] args) throws FileNotFoundException { FileReader reader = new FileReader(“java.pdf”); } 为什么我们需要在第一个版本中重新抛出ex ,而第二个版本看起来更优雅? 什么可能是好处,哪个版本比另一个更受欢迎?

为什么hibernate将HibernateException更改为(未选中)RuntimeException

我知道在某些版本中,Hibernateexception被更改为未选中。 是什么原因? 这是一个哲学问题还是实际问题?

常见的下溢和溢出exception

我试图在java中获得溢出和下溢exception,但无法获得任何好的教程。 具体来说,我想学习 他们彼此有什么不同? 这些例外的子类是什么? 在哪种情况下他们被抛出? 哪些可以处理以及如何处理? 与他们相关的最佳实践是什么? 任何有用教程的链接都可以

抛出exception时EDT是否重启?

(下面的示例代码是自包含且可运行的,您可以尝试它,它不会崩溃您的系统:) Tom Hawtin在这里评论了这个问题: 为什么人们在事件队列上运行Java GUI 那: EDT不太可能崩溃。 在EDT调度中抛出的未经检查的exception被捕获,转储并且线程继续。 有人可以解释我在这里发生了什么(每次你点击“抛出一个未经检查的exception”按钮,有意地执行除以零): import javax.swing.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; public class CrashEDT extends JFrame { public static void main(String[] args) { final CrashEDT frame = new CrashEDT(); frame.addWindowListener(new WindowAdapter() { public void windowClosing( WindowEvent e) { System.exit(0); } }); final JButton jb = new JButton( […]

Java中是否有未处理的exception处理程序?

如果我在.NET中正确记得,可以为未处理的exception注册“全局”处理程序。 我想知道Java是否有类似的东西。

捕获嵌套到另一个exception中的exception

我想捕获一个exception,它嵌套到另一个exception中。 我这样做是这样的: } catch (RemoteAccessException e) { if (e != null && e.getCause() != null && e.getCause().getCause() != null) { MyException etrp = (MyException) e.getCause().getCause(); … } else { throw new IllegalStateException(“Error at calling service ‘service'”); } } 有没有办法更有效和优雅地做到这一点?

通过Eclipse运行时,Java无法找到文件

当我运行应该从Eclipse中的文件读取的Java应用程序时,我得到一个java.io.FileNotFoundException ,即使该文件位于正确的目录中。 我可以从命令行编译并运行应用程序就好了; 问题只出现在Eclipse中,有多个项目和应用程序。 是否需要在运行配置或构建路径中更改设置以使其正确查找文件?

为什么我不能在Java 8 lambda表达式中抛出exception?

我升级到Java 8并试图用一个新的lamdba表达式替换一个简单的迭代迭代。 循环搜索空值并在找到exception时抛出exception。 旧的Java 7代码如下所示: for (Map.Entry entry : myMap.entrySet()) { if(entry.getValue() == null) { throw new MyException(“Key ‘” + entry.getKey() + “‘ not found!”); } } 我将其转换为Java 8的尝试如下所示: myMap.forEach((k,v) -> { if(v == null) { // OK System.out.println(“Key ‘” + k+ “‘ not found!”); // NOK! Unhandled exception type! throw new MyException(“Key ‘” + […]

如何调试ConcurrentModificationException?

我遇到了ConcurrentModificationException,通过查看它,我看不出它为什么会发生的原因; 抛出exception的区域和修改集合的所有位置都被包围 synchronized (this.locks.get(id)) { … } // locks is a HashMap; 我试图抓住讨厌的线程,但我所能指出的(通过在exception中设置断点)是抛出线程拥有监视器而另一个线程(程序中有两个线程)睡眠。 我该怎么办? 当遇到类似的线程问题时,您通常会做什么?

使用try-with-resources静静地关闭资源

是否可以忽略使用try-with-resources语句关闭资源时抛出的exception? 例: class MyResource implements AutoCloseable{ @Override public void close() throws Exception { throw new Exception(“Could not close”); } public void read() throws Exception{ } } //this method prints an exception “Could not close” //I want to ignore it public static void test(){ try(MyResource r = new MyResource()){ r.read(); } catch (Exception e) { System.out.println(“Exception: […]