【Java 中处理异常的 9 个最佳实践】教程文章相关的互联网学习教程文章

java-使用join()然后get()的CompletableFuture异常行为【代码】

我的直觉是以下代码是错误的.我相信,因为正在使用join(),所以在完成期货时抛出的任何异常都不会被检查.然后,当调用get()时,将没有检查到的异常,没有记录任何错误以及在故障期间难以诊断错误.List<CompletableFuture> list = ImmutableList.of(future1, future2);CompletableFuture.allOf(list.toArray(new CompletableFuture[list.size()])).join();try {result1 = future1.get();result2 = future2.get();} catch (InterruptedExc...

【转载】Java项目中常用的异常处理情况总结【图】

一,JDK中与异常相关的类分析: Java中的异常分类: Throwable类有两个直接子类: Exception:出现的问题是可以被捕获的; Error:系统错误,通常由JVM处理。 可捕获的异常又可以分为两类: (1)Check异常:直接派生自Exception的异常类,必须被捕获或再次声明抛出 (2)Runtime异常:派生自RuntimeException的异常类。使用throw语句可以随时抛出这种异常对象: throw new ArithmeticException(…); 二,异常发生的...

java-模拟-缺少方法调用异常【代码】

我有一个简单的Java程序,该程序具有一个服务类,该服务类可检索以Euros-BitCoinValueService.java为单位的BitCoin当前价格. BitCoinPricer类采用BitCoinValueService类提供的数字并将其转换为美元. 目标是从BitCoinValueService类模拟对象,因为该数字会频繁波动. 这是测试类代码:@RunWith(JUnitParamsRunner.class) public class BitcoinPricerTest {@MockBitCoinValueService bsp; @Beforepublic void initMocks(){MockitoAnnotat...

java-在Spring Boot中处理异常的正确方法【代码】

我在阅读Spring文档时发现,从ResponseEntityExceptionHandler创建子类是处理异常的好方法.但是,我尝试以不同的方式处理异常,因为我需要将BusinessException与TechnicalException区别. 创建了一个名为BusinessFault的Bean,其中封装了异常详细信息: BusinessFault.javaimport com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotatio...

java-使用Spark Streaming从Kafka读取数据时lz4异常【代码】

我试图使用火花流式API从kafka读取json数据,当我这样做时,它将引发java.lang.NoSuchMethodError:net.jpountz.lz4.LZ4BlockInputStream.init异常.堆栈跟踪为-java.lang.NoSuchMethodError: net.jpountz.lz4.LZ4BlockInputStream.<init>(Ljava/io/InputStream;Z)V at org.apache.spark.io.LZ4CompressionCodec.compressedInputStream(CompressionCodec.scala:122) at org.apache.spark.serializer.SerializerManager.wrapForCompres...

java-Logback-如何分别记录异常的简单名称【代码】

有什么方法可以只记录异常的简单名称,而无需从代码中显式检索它? 例如,通过调用log.error(exception);具有登录模式%d{yyyy-MM-dd}|%-5level|%m%n而不是仅记录异常堆栈跟踪2018-01-01|ERROR| mainPackage.foo.bar.RocketExplosionException: Houston we have a problemat mainPackage.foo.bar.TestThrower.fire(TestThrower.java:22)at mainPackage.foo.bar.TestThrower.readyToLaunch(TestThrower.java:17)at mainPackage.Excepti...

java-运行计时器任务由于异常的语法错误而无法正常工作【代码】

新手问题:我一直在尝试运行计时器.但是我遇到一个异常错误.这是下面的代码.class Helper extends TimerTask { public static int i = 0; public void run() { System.out.println("Timer ran " + ++i); } } public class Test { Timer timer = new Timer(); TimerTask task = new Helper(); timer.schedule(task, 2000, 5000); } 我遇到的错误是timer.schedule(task,2000,5000); 该错误称为语法错误“)”删除此令牌 我已经检查...

如何在for循环内的Java中将元素添加到arraylist中而没有并发修改异常【代码】

我有一个Java Spring MVC Web应用程序.我试图遍历ArrayList并根据某些条件将新元素添加到列表中.我使用以下代码:List<LocationHourListHB> locationHoursList = new ArrayList<LocationHourListHB>(); List<HoursTO> hourList = listHoursByEntityId(applicationId, siteId, locationId); for (HoursTO hoursTO : hourList) {if(locationHoursList.size() == 0){LocationHourListHB locationHourListHB = new LocationHourListHB...

java-异常和Web服务【代码】

我正在使用例如随附的标准java ws实现. java6(javax.jws.*). 我有以下几点:import javax.jws.*;@WebService(name="Widget") public interface Widget {@WebMethodpublic @WebResult String getGadget(@WebParam(name = "id") long id) throw MyOwnException; }这可能吗?我是否必须使用例如@WebFault注释来注释MyOwnException?在最初的测试中,我还注意到,在客户端,自动生成的MyOwnException被重命名为MyOwnException_Excepti...

如何整合Java中的有效性检查和异常抛出?【代码】

我正在实现一个接口,该接口定义了一种方法,如果参数无效,该方法可以引发异常.有效参数的构成取决于实现类.该接口还定义了一个isValid()方法,该方法可用于检查参数,但返回布尔值而不是引发异常.我发现实现这两种方法将导致大量重复.考虑下面的示例:public class Something implements SomeInterface {// Other class stuffpublic void doTheThing(SomeParameter sp) throws SpecificRuntimeException {if(sp == null) throw new Pa...

java-我怎么知道空指针异常的起源?【代码】

我在制作Blackberry应用程序时遇到问题.我发现有人制作了一个教程,该教程完成了我的尝试.我复制了教程应用程序的代码以尝试重新创建它,只是为了看到它的实际效果.结果:空指针异常. 我想知道是什么触发了这一点.我怎样才能?解决方法:如果捕获Throwable而不是捕获Exception或Exception的任何子类,则可以查看stacktrace.例如try {//some code } catch(Throwable t) {//Will automatically show a stacktrace in eclipse. //I belie...

尝试在Java中匹配此正则表达式时,为什么会引发此异常?【代码】

我正在尝试从HTML文档中匹配特定的字符串,并使用此正则表达式模式来抓取它:Pattern somePattern = Pattern.compile("var json = ({\"r\":\"^d1\".*});");但是,当我尝试在运行时运行该代码时,出现以下错误:FATAL EXCEPTION: Timer-0java.util.regex.PatternSyntaxException: Syntax error U_REGEX_RULE_SYNTAX near index 13:var json = ({"r":"^d1".*});^at com.ibm.icu4jni.regex.NativeRegEx.open(Native Method)at java.util....

java-线程“ main”中的异常org.jboss.xb.binding.JBossXBRuntimeException:无法创建新的SAX解析器【代码】

我已经用Java创建了一个独立的Web服务客户端.我能够正确生成WSDL,但是当我执行run.bat文件时,很长一段时间我都会得到一个例外,下面是一个例外.我用谷歌搜索了标题中显示的异常,并找到了包含该异常的.jar文件.我将此添加到了JBOSS_HOME / lib目录以及Client / lib目录中.不知道为什么我仍然看到这个.任何建议将不胜感激.Exception in thread "main" org.jboss.xb.binding.JBossXBRuntimeException: Failed to create a new SAX pars...

捕获多个Java异常时,如何在不编写重复代码的情况下添加状态信息?【代码】

我还阅读了其他一些文章,例如this one,以避免在Java catch块中重复.显然,我真正想要的是“多捕获”,但是看到Java 7尚未出现,是否有一个很好的模式可以让我向异常中添加状态,然后重新抛出它们,而无需添加catching the kitchen sink? 具体来说,我有一些代码可以进行库调用,这可能引发异常,但没有提供足够的上下文来成功进行调试.我发现自己有问题,然后继续进行操作,将库调用包装在try / catch中,捕获特定的异常,然后在catch块中添加...

java-Glassfish v3的表单身份验证中的异常【代码】

我已经看到这个问题发布在很多地方,但是似乎没有解决方案.因此,我在这里尝试了一下自己的运气.我在Java EE 6框架中使用Glassfish 3.0.1 b.22.这是我在Login.jsf中的表单身份验证<form action="j_security_check"><h:panelGrid columns="2" bgcolor="#eff5fa" cellspacing="5" frame="box" styleClass="center"><h:outputLabel value="User ID:"/><h:inputText id="j_username" tabindex="1" /><h:outputLabel value="Password:"/><...