我学到的关于Java EE开发的第一件事就是我不应该在Java EE容器中生成我自己的线程.但是当我开始思考它时,我不知道原因.
你能清楚地解释为什么气馁吗?
我相信大多数企业应用程序都需要某种异步工作,如邮件守护进程,空闲会话,清理工作等.
因此,如果确实不应该生成线程,那么在需要时执行它的正确方法是什么?
我正在阅读有关Java中异常处理的一些内容,以便能够编写更好的代码.好吧,我承认,我很内疚; 我已经使用了太多的try-catch {}块,我已经ex.printStackTrace()在catch中使用了,甚至没有使用正确的记录器(实际上System.out并且System.err被重定向到a PrintWriter,因此生成了日志).然而,经过几个小时的阅读,我发现自己处在一个陌生的地方:未知.如果异常被设计为传递有关流的异常状态的信息,那么如何知道WHERE是用该信息做某事的适当级别?
例如,当发生数据库错误时,是应该返回空值还是错误代码,还是抛出异常?如果抛出,那么应该处理该异常?据我所知,如果你不能对它做任何事情,那么记录异常是没用的.但是,在GUI应用程序中,这可能很容易杀死你的GUI(我使用SWT而且我经常看到这个),即使对于menuShown()方法的情况(ArrayIndexOutOfBounds如果不处理,例外将关闭应用程序).这个例子可以永远持续下去,但这里是问题摘要:
我知道这个主题是永恒的,但实际上我期待着根据你的建议审查一个150个班级的中型项目.非常感谢.
是否有任何方法可以处理/捕获Java应用程序抛出的所有异常,而不会try{}catch(Exception e){}在各处发送代价高昂的语句?
例如,PHP具有该功能set_error_handler().
背景故事 - 尽管进行了严格的测试,但有时候错误可以通过,而且用户总是不太愿意帮助解决这些错误.理想情况下,我想将应用程序挂钩到一个Web服务工具,该工具可以跟踪用户应用程序抛出的任何堆栈跟踪.