草庐IT

Try-except

全部标签

不要在代码中随便使用try...catch了

前言 📫大家好,我是南木元元,热爱技术和分享,欢迎大家交流,一起学习进步! 🍅 个人主页:南木元元目录背景js中的try...catchtry...catch运行机制js的事件循环机制try...catch无法捕获异步错误的原因解决方法结语背景之前面某物的时候,遇到了一个有关try...catch的问题,让我印象深刻,这里来记录分享一下。面试官:下面代码有什么问题吗?示例1:try{setTimeout(()=>{thrownewError('err');},200);}catch(err){console.log(err);}示例2:try{Promise.resolve().then(()

java - 发生 org.hibernate.exception.GenericJDBCException : Could not open connection for long running process

在我的应用程序中,我为一项工作使用了20个线程。每个线程调用远程Web服务并更新Oracle数据库。Jboss重启后,作业无法更新数据库,除了我在日志中发现的异常:2017-11-0823:36:20,706ERROR[org.hibernate.engine.jdbc.spi.SqlExceptionHelper](EJBdefault-21)javax.resource.ResourceException:IJ000460:Errorcheckingforatransaction2017-11-0823:36:20,706ERROR[org.jboss.as.ejb3](EJBde

java - kafka : Commit offsets failed with retriable exception. 你应该重试提交偏移量

[o.a.k.c.c.i.ConsumerCoordinator][Autooffsetcommitfailedforgroupconsumer-group:Commitoffsetsfailedwithretriableexception.Youshouldretrycommittingoffsets.][]为什么kafkaconsumer会出现这个错误?这是什么意思?我使用的消费者属性是:fetch.min.bytes:1enable.auto.commit:trueauto.offset.reset:latestauto.commit.interval.ms:5000reques

MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting transaction

遇到MySQLTransactionRollbackException:Lockwaittimeoutexceeded;tryrestartingtransaction这个错误时,通常意味着你的数据库事务在尝试获取一个锁时等待了太长时间。这通常发生在有长时间运行的事务持有锁,而其他事务在等待这个锁时超过了锁等待超时的时间。要解决这个问题,你可以按照以下步骤进行排查和解决1.确定哪个事务持有锁首先,需要找出哪个事务持有了锁并导致其他事务等待。你可以通过运行以下SQL命令来查看当前的锁情况:sqlSHOWENGINEINNODBSTATUS;这个命令会显示InnoDB的许多内部运行信息,包括锁等待

java - GlassFish 4.0 w/Jersey 毫无异常(exception)地返回 500 内部服务器错误

我正在使用GlassFish4.0服务器和基于服务器端JPA的类,我想通过JAX-RS提供这些类。到目前为止,这对于简单实体来说效果很好。但是,如果我有一个@OneToMany关系,并且有一个链接实体,服务器将返回500内部服务器错误。在这种情况下,服务器日志中不会记录任何内容。为了找到错误,我创建了一个小的自定义JSP页面来获取有关所发生情况的更多信息。代码就是这样:Status:Throwable:不幸的是,输出只是“Status:500Throwable:null”我自己的服务器端代码似乎运行正常(做了一些调试输出),但是,出现了一些错误。在此示例中,除非存在链接的IssueCo

java - 先验证还是 try catch ?

假设我有一个如下所示的函数:publicvoidsaveBooking(/*someinputs*/){//saveintodatabase}在保存到数据库之前,我必须做各种验证。我在主程序中可以做的是这样的://doallthevalidationsanddoanynecessaryhandling.Then...saveBooking(/*inputs*/);有了这个,我确信所有数据在保存到数据库之前都必须通过所有要求的验证。但是,这意味着函数saveBooking()密切依赖于验证方法。每次我想调用saveBooking()时,我都必须确保不会忘记调用验证。或者,我可以将所有验证

java - 每个抛出异常的语句的 try/catch 是否被视为反模式?

我目前正在审查同事的Java代码,我看到很多情况下,每个可能抛出异常的语句都被封装在自己的try/catch中。catchblock都执行相同的操作(哪个操作与我的问题无关)。对我来说,这似乎是一种代码味道,我确实记得读过它是一种常见的反模式。但是我找不到任何关于此的引用资料。对于每条抛出异常的语句,try/catch都被视为反模式吗?支持这一点的论据是什么?构造示例:(与原始问题无关,所以请不要介意这个例子的其他问题,因为它只是为了说明我的意思。)publicintfoo(){intx,y=7;try{x=bar(y);}catch(SomeExceptione){return0;}

java.rmi.UnmarshalException : error unmarshalling arguments; nested exception is: java. lang.ClassNotFoundException:ServicesTableau

关于JAVARMI,我需要你的帮助,我开发了一个用于对表进行排序的示例程序。但我得到了这个异常(exception):ErreurRemoteExceptionoccurredinserverthread;nestedexceptionis:java.rmi.UnmarshalException:errorunmarshallingarguments;nestedexceptionis:java.lang.ClassNotFoundException:ServicesTableau这是我的服务器源代码:publicclassServeur{publicstaticvoidmain(St

java - `try/catch`具体是怎么工作的

我想深入了解try{}catch{}block和堆栈跟踪是如何工作的。我正在阅读thisgreatarticleaboutexceptionhandlinganti-patterns并找到以下段落:catch(NoSuchMethodExceptione){thrownewMyServiceException("Blah:"+e.getMessage());}Thisdestroysthestacktraceoftheoriginalexception,andisalwayswrong.在那之后我意识到我并不真的知道try/catch是如何工作的。我的理解如下。考虑这个例子:voidt

java - 使用多个 getter 时使用 Try-Catch 而不是空检查

我的问题如下,我有一个很长的Getter,即,objectA.getObjectB().getObjectC().getObjectD().getObjectE().getName();由于“糟糕的”数据库/实体设计(有些东西比其他东西引入得晚),发生了getObjectB()、getObjectC()或getObjectD()可以返回NULL。通常我们一直使用空检查,但在这种情况下,我必须使用ObjectBb=objectA.getObjectB();if(b!=null){ObjectCc=b.getObjectC();if(c!=null){ObjectDd=c.getObjec