草庐IT

Try-finally

全部标签

java - 在java中对每个方法使用一个大的try-catch是一种已知的好习惯吗?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题吗?更新问题,以便editingthispost提供事实和引用来回答它.关闭9年前。Improvethisquestion我最近接受了面试,面试官要我做一个技术测试来看看我的知识。在我完成它之后,他给了我关于我是如何做到的反馈,这是我没想到的,我很感激,因为如果他们不想雇用你,很少有面试官会这样做。他告诉我,他认为我的代码不好的一件事是,我在编写的每个方法中都使用了多个try-catchblock。这引起了我的注意,因为我觉得它很有趣。我认为目前我应该制作try-catchblock,其中存在语义上可区分的代

java - 是内存泄漏吗?为什么 java.lang.ref.Finalizer 吃掉这么多内存

我在我的程序上运行了一个堆转储。当我在内存分析工具中打开时,发现org.logicalcobwebs.proxool.ProxyStatement的java.lang.ref.Finalizer占用了大量内存.为什么会这样? 最佳答案 一些类实现了Object.finalize()方法。覆盖此方法的对象需要由后台线程调用终结器调用,并且在这种情况发生之前无法清理它们。如果这些任务很短,并且您没有丢弃其中的许多任务,那么一切都很好。但是,如果您要创建大量这些对象和/或它们的终结器需要很长时间,则要终结的对象队列会增加。这个队列有可能会

java - 检查一个字符串是否可以在没有 try-catch 的情况下解析为 Long?

Long.parseLong("string")如果字符串无法解析为long,则会引发错误。有没有办法比使用try-catch更快地验证字符串?谢谢 最佳答案 您可以创建相当复杂的正则表达式,但这并不值得。在这里使用异常是绝对正常的。这是自然的异常(exception)情况:您假设字符串中有一个整数,但实际上还有其他东西。应该抛出异常并正确处理。如果您查看parseLong代码,您会发现有许多不同的验证和操作。如果你想在解析之前做所有这些事情,它会降低性能(如果我们正在谈论解析数百万个数字,否则没关系)。因此,如果你真的需要通过避免

java - 使用 try/catch 进行最终变量赋值

因为我相信这是一种很好的编程习惯,所以我将所有(本地或实例)变量设为final,如果它们打算只编写一次的话。但是,我注意到,当变量赋值可能引发异常时,您不能将所述变量设为final:finalintx;try{x=Integer.parseInt("someinput");}catch(NumberFormatExceptione){x=42;//Compilererror:Thefinallocalvariablexmayalreadyhavebeenassigned}有没有办法在不使用临时变量的情况下做到这一点?(或者这不是最终修饰符的正确位置吗?) 最

java - Spring 4.1.0.RELEASE 和 Hibernate 4.3.6.Final 的依赖关系问题

我想用Spring和Hibernate(和Maven)构建一个RESTful服务。我首先使用了Spring4.0.3版本,一切正常。但我想使用最新版本4.1.0并相应地更改了我的pom.xml。但是然后我在启动时遇到错误。你能说出pom.xml应该是什么样子吗?使用spring创建RESTful服务的最佳方法是什么?我找到了一个使用spring-data-rest-webmvc的示例,我正在使用它。有没有更好的办法?这是错误代码:AMorg.apache.catalina.core.StandardContextloadOnStartupSchwerwiegend:Servlet/sp

java - Spring io @Autowired : The blank final field may not have been initialized

我认为这是一个非常基本的问题-关于此错误有多种问题,但前5个结果中没有一个具有Spring的细微差别。我有一个在Spring编写的REST-fulwebapp的开始。我正在尝试将其连接到数据库。我有一个名为Workspace的实体,我正在尝试使用bean的spring注入(inject)(正确的术语?)来保存工作区实体的实例packagecom.parrit;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.util.Assert;importorg.spring

使用 try catch block 时的 Spring @Transactional 注释

如果我们在带有@Transactional注解的方法中捕获到异常,如果发生异常会回滚吗?@Transactional(readOnly=false,propagation=Propagation.REQUIRED,rollbackFor=Throwable.class)publicvoidyearEndProcess(){try{//tryblock}catch(Throwablethrowable){//catchblock}} 最佳答案 例如classA{@TransactionalpublicResultdoStuff(){R

java - 获取 "Deadlock found when trying to get lock; try restarting transaction"

我的应用程序(javaspring-core)有多个线程同时运行并访问数据库,我在某些高峰时间遇到异常07:43:33,400WARN[org.hibernate.util.JDBCExceptionReporter]SQLError:1213,SQLState:4000107:43:33,808ERROR[org.hibernate.util.JDBCExceptionReporter]Deadlockfoundwhentryingtogetlock;tryrestartingtransaction07:43:33,808ERROR[org.hibernate.event.def.A

mysql - 为 "Lock wait timeout exceeded; try restarting transaction"Mysql 表修复 'stuck"?

通过一个脚本,我向我的本地数据库发送了数千次这样的查询:updatesome_tablesetsome_column=some_value我忘了添加where部分,所以表中的所有行都将同一列设置为相同的值,这已经完成了数千次并且列被索引了,所以相应的索引也可能被更新了很多次。我注意到有问题,因为花了太长时间,所以我终止了脚本。从那时起,我什至重新启动了我的计算机,但有些东西卡在了表中,因为简单的查询需要很长时间才能运行,当我尝试删除相关索引时,它会失败并显示以下消息:Lockwaittimeoutexceeded;tryrestartingtransaction这是一个innodb表,

mysql - 即使我没有使用事务,也会得到 "Lock wait timeout exceeded; try restarting transaction"

我正在运行以下MySQLUPDATE语句:mysql>updatecustomersetaccount_import_id=1;ERROR1205(HY000):Lockwaittimeoutexceeded;tryrestartingtransaction我没有使用交易,为什么会出现这个错误?我什至尝试重新启动我的MySQL服务器,但没有帮助。该表有406,733行。 最佳答案 如何强制解锁MySQL中的锁定表:像这样破坏锁可能会导致atomicity在数据库中不会对导致锁定的sql语句强制执行。这太骇人听闻了,正确的解决方案是修