我坚持决定如何处理我的应用程序中的exception。 很多,如果我的exception问题来自1)通过远程服务访问数据或2)反序列化JSON对象。 不幸的是,我不能保证这些任务(切断networking连接,不受我控制的格式错误的JSON对象)的成功。 因此,如果我确实遇到一个exception,我只需在函数中捕获它并返回给调用者的FALSE。 我的逻辑是所有的呼叫者真的关心的是如果任务是成功的,而不是为什么它不成功。 下面是一些典型方法的示例代码(用JAVA) public boolean doSomething(Object p_somthingToDoOn) { boolean result = false; try{ // if dirty object then clean doactualStuffOnObject(p_jsonObject); //assume success (no exception thrown) result = true; } catch(Exception Ex) { //don't care about exceptions Ex.printStackTrace(); } return result; } 我认为这种方法没问题,但是我真的很好奇,知道pipe理exception的最佳实践是什么(我真的应该把一个exception从一个调用堆栈中调出来)。 总结关键问题: 可以只捕捉exception,但不要冒泡或正式通知系统(通过日志或通知给用户)? 什么最佳实践是有exception,不会导致所有需要一个try / catch块? 跟进/编辑 感谢所有的反馈意见,在线查找exceptionpipe理的一些优秀资源: exception处理的最佳实践| O'Reilly媒体 .NET中的exception处理最佳实践 […]
最近我正在阅读Spring框架的源代码。 我不明白的东西在这里: public Member getMember() { // NOTE: no ternary expression to retain JDK <8 compatibility even when using // the JDK 8 compiler (potentially selecting java.lang.reflect.Executable // as common type, with that new base class not available on older JDKs) if (this.method != null) { return this.method; } else { return this.constructor; } } […]
我被给了一个maven项目来编译和部署在tomcat服务器上。 今天之前我从来没有用过maven,但是我一直在用googlesearch。 看来这个项目中的顶级pom.xml文件的打包types设置为pom 。 mvn install后我应该做些什么来部署这个应用程序? 我期待着能够在某处或某处findwar档案,但我想我正在寻找错误的地方或错过了一步。
为什么会使用下列其中一个软件包而不是另一个? Javalogging Commons Logging Log4j的 SLF4J 的logback
有人可以帮助我了解Java CountDownLatch是什么以及何时使用它? 我对这个程序的工作原理并不清楚。 据我所知,所有三个线程立即开始,每个线程将在3000毫秒后调用CountDownLatch。 所以倒数会逐一递减。 在锁存器变为零后,程序打印“已完成”。 也许我理解的方式是不正确的。 import java.util.concurrent.CountDownLatch; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; class Processor implements Runnable { private CountDownLatch latch; public Processor(CountDownLatch latch) { this.latch = latch; } public void run() { System.out.println("Started."); try { Thread.sleep(3000); } catch (InterruptedException e) { e.printStackTrace(); } latch.countDown(); } } // ———————————————— —– public class App { public […]
只需通过命令行( macterminal )在git( beanstalk )版本控制下放置一个Android项目。 下一步是设置排除。 对于那些已经踏上这条道路的人们, 一个典型的.gitignore文件应该是什么样的android项目? 在Eclipse中设置的项目
我一直在Java中的 static和final关键字之间混淆。 他们有什么不同?
我正在考虑为我的Java应用程序创build一个debugging工具。 我想知道是否有可能得到一个堆栈跟踪,就像Exception.printStackTrace()但实际上没有引发exception? 我的目标是,在任何给定的方法中,转储堆栈以查看调用方的方法。
我试图让Appfuse + tomcat + jRebel工作。 Appfuse默认使用Cargo下载tomcat(7.0.33版本)并将应用程序部署到它。 我希望使用已经安装的tomcat(版本7.0.27),而不是下载的。 我遵循appfuse FAQ进行了更改。 用mvn cargo:run部署后mvn cargo:run ,我怎么知道实际运行的tomcat确实是7.0.27? 我曾经input一个错误的URL(例如localhost:8080 / dfsfsdf )在错误页面中看到它,但是现在它什么也没有显示。 我的$CATALINA_HOME指向我自己的tomcat 7.0.27。 对不起忘了提,这是Windows 更新: 既然这个问题已经变得很stream行了,我想解释一下为什么那个接受的答案。 简单的,这是第一个解决了我的问题。 看问题的标题, @ Tech Junkie和@CPU 100真的有最好的答案,但不是我遇到的情况。 (我想知道如果mvn cargo:run运行我安装的tomcat或“项目embedded”的tomcat) 🙂
我是Java的新手,当我开始开发时,我的朋友推荐Maven进行项目pipe理。 我几乎立即意识到这是一个不可或缺的工具,那时我正在想所有的程序员都用它。 但是当我在NetBeans网站上看到统计信息时,我感到很震惊:67%的开发人员没有使用Maven。 为什么? 是否有一些替代工具使项目pipe理变得简单? UPDATE 我同意feicipet在100%。 IDE独立的,这是非常好的。 这是根据我自己的经validation明的。 首先,我们的团队使用了Eclipse,然后我们决定切换到使用IDEA帮助我们的NetBeans。 这并不重要,因为即使使用控制台,项目也可以运行:) 结构良好,清洁的项目。 我认为Maven结构约定是非常有帮助的,因为testing和主代码是分开的。 项目pipe理。 Maven不仅是构build工具 ,它还使您能够configuration环境,运行unit testing以及创build报告。 对于我来说,当有经验的编程谈论Maven的困难的时候,当我看到Ant在Maven的一个项目中向我展示了一个奇迹时,感到惊讶。 所有关于从Ant过渡的复杂性的评论都很奇怪。 这是两种不同的逻辑,你期望什么? 文档有一些问题,这真的很糟糕。 但我认为这种情况会好转