千家信息网

java如何抛出适合抽象的异常

发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,这篇文章主要介绍java如何抛出适合抽象的异常,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!抛出适合抽象的异常抛出的异常应该与调用者执行的任务有联系。此项介绍异常转换(捕获异常
千家信息网最后更新 2025年01月19日java如何抛出适合抽象的异常

这篇文章主要介绍java如何抛出适合抽象的异常,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

抛出适合抽象的异常

抛出的异常应该与调用者执行的任务有联系。此项介绍异常转换(捕获异常并抛出另一个)和异常链(将异常包装在新的异常中以保留异常的因果链)。

private void serializeBillingDetails(BillingResult billingResult,        BillingDetailsType billingDetails) {     try {        final JAXBContext context = JAXBContext                .newInstance(BillingdataType.class);        final ByteArrayOutputStream out = new ByteArrayOutputStream();        final Marshaller marshaller = context.createMarshaller();        marshaller.setProperty("jaxb.formatted.output", Boolean.FALSE);        final BillingdataType billingdataType = new BillingdataType();        billingdataType.getBillingDetails().add(billingDetails);        marshaller.marshal(factory.createBillingdata(billingdataType), out);        final String xml = new String(out.toByteArray(), "UTF-8");        billingResult.setResultXML(xml.substring(                xml.indexOf("") + 13,                xml.indexOf("")).trim());        billingResult.setGrossAmount(billingDetails.getOverallCosts()                .getGrossAmount());        billingResult.setNetAmount(billingDetails.getOverallCosts()                .getNetAmount());    } catch (JAXBException | UnsupportedEncodingException ex) {        throw new BillingRunFailed(ex);    }}

上述方法捕获 JAXBExceptionUnsupportedEncodingException,并重新抛出一个适合方法抽象级别的新异常。新的 BillingRunFailed 异常包装了原始异常。所以这是异常链的一个很好的例子。异常链的好处是保留有助于调试问题的低级异常。

以上是"java如何抛出适合抽象的异常"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

0