`

对异常绝不要轻易吃掉

 
阅读更多

最近项目中发现解释XML的时候一直报空指针,很愁人,最后反编译看代码后终于找到问题的根源了:

 

borlandxml.jar里有个类:com.borland.xml.toolkit.XmlUtil对异常处理极为不友好,如下:

    public static Element getDocRootElement(InputStream inputstream)

    {

        try

        {

            Element element = new Element(isSAXUsed() ? getSAX().build(inputstream).getRootElement() : getDOM().build(inputstream).getRootElement());

            return element;

        }

        catch(JDOMException jdomexception)

        {

            Element element1 = null;

//这里把异常自己吃掉了。我在执行程序的时候,报:org.jdom.JDOMException: SAX2 driver class org.apache.xerces.parsers.SAXParser not found错,

//明显是少包的问题,像这种异常,如果不反编译进来很难发现(如果使用POM.XML管理依赖也行)

            return element1;

        }

        finally

        {

           

        }

    }

///////////////////

加入xercesImpl.jar问题解决。

分享到:
评论

相关推荐

    .NET性能优化方法 学习笔记 (详细整理版)

    1.5.2 不要吃掉异常信息★ 1.5.3 避免不必要的抛出异常 1.5.4 避免不必要的重新抛出异常 1.5.5 捕获指定的异常,不要使用通用的System.Exception. 1.5.6 要在finally里释放占用的资源 1.6 反射 1.6.

    设计异常解决方案的几点注意事项.docx

    处理异常时,不要轻易捕获不确定类型的异常并吞掉它们,尤其是在框架代码中。捕获特定类型的异常并能对其进行适当处理是正确的做法。如果捕获了不应当捕获的异常,可能会掩盖真正的错误,使得调试变得困难。使用`try...

    程序崩溃异常捕获

    在软件开发过程中,异常捕获是一项至关重要的技术,它能够帮助开发者及时发现并解决程序运行时出现的问题。当用户在使用应用时遇到错误导致程序崩溃,如果没有适当的异常处理机制,用户体验将大大降低,同时,开发者...

    易语言异常处理辅助模块

    易语言异常处理辅助模块是为了解决易语言自身在异常处理方面不足而设计的一个扩展工具。易语言,作为一款中国本土开发的编程语言,以其简洁的语法和易学性受到许多初学者和开发者喜爱。然而,它在异常处理机制上的...

    unity 捕捉异常和移动设备崩溃Android

    在处理异常时,注意不要过度依赖日志记录,因为这可能会对性能产生影响。合理地使用try-catch,只在必要时捕获异常,并确保异常处理代码高效且不会阻塞主线程。 七、移动设备特定问题 在移动设备上,内存和处理器...

    Android 全局异常捕获

    当然,全局异常捕获并不能替代对每个可能出现异常的地方进行详细的错误处理。在编写具体业务逻辑时,应尽可能地预测并处理可能出现的异常情况,避免依赖全局异常捕获来处理所有的异常。全局异常捕获应当被视为最后的...

    利用java filter 实现业务异常拦截源码

    我们在做项目中肯定都会遇到自定义业务异常 ,然后将业务异常信息跳转的统一的信息提示页面的情况,比如我们在struts的时候我们会用到struts的异常处理机制,我们在业务层会跑出我们遇到业务处理异常 ,然后交由...

    Java异常处理教程

    1. 不要忽视异常:即使异常看起来不严重,也应该正确处理,避免程序意外终止。 2. 适当的异常类型:选择与错误条件最匹配的异常类型,使代码更具可读性和可维护性。 3. 提供有意义的异常消息:异常消息应清晰地描述...

    Java异常分装实例

    在Java编程语言中,异常处理是一...通过对异常进行分类和封装,我们可以更好地控制程序的错误处理流程,从而提高软件的稳定性。通过研究`exception_test`中的实例,开发者可以加深对这一机制的理解并应用到实际项目中。

    C# WINFORM应用程序未处理异常的统一处理技巧

    异常处理是每个应用程序都会用到的,纵然在程序编写期间我们都会最大限度的考虑可能发生的异常并进行相应的处理,但是往往并不能完全考虑周全,百密一疏,出现未处理异常而导致程序出错,数据丢失,如用户输入错误...

    中国范围内1*1高程异常数据

    通过EGM2008计算出来的中国1*1高程异常数据,通过该数据可以画出中国境内高程异常的变化等值图,利于研究和分析

    网络AMR异常掉话问题定位案例.pdf

    网络AMR异常掉话问题定位案例.pdf

    CAD:应用程序的组件中发生了未处理的异常

    在CAD(计算机辅助设计)领域,"应用程序的组件中发生了未处理的异常"是一个常见的错误提示,这通常意味着在运行CAD软件时,遇到了一个程序无法正常处理的问题,导致了系统崩溃或者异常中断。这种情况可能由多种因素...

    地球重力场模型计算高程异常

    通过这些工具,用户可以生成以经纬度为坐标的高程异常格网,这有助于对地球表面的重力场进行可视化和分析。 总的来说,EGM2008模型及其应用是现代地球科学和地理信息系统中的关键技术之一,它不仅提供了对地球重力...

    数据预处理之剔除异常值及平滑处理

    单纯移动平均法的改进版本,可以使用加权移动平均法,对不同位置的数据点赋予不同的权重,近期的数据点赋予更大的权重,以更准确地反映数据的趋势。而指数平滑法则是一种更加复杂的平滑技术,它通过赋予每个观测值一...

    Android 应用程序异常退出自动重启

    Android 应用崩溃自动启动 给用户给好的体验 本应用还可以扩展为类似京东崩溃时弹出信息反馈框 这需要你自己实现哦 另外欢迎关注我的新浪微博@MinganCai 有问题可以@我 我会尽快给你们回复的 雷锋

    程序崩溃自动重启以及将未捕获到的异常写退出栈

    这种方法需要对进程管理和信号处理有深入理解。另外,也可以使用守护进程(daemon)的概念,使得即使主程序崩溃,守护进程仍然存活并能够重新启动程序。 对于“未捕获异常时写退出栈”,这是一个关键的调试工具。当...

    异常统一处理实例

    异常统一处理实例,实例详解请访问博主博客:http://blog.csdn.net/u013142781

    Android 全局异常错误或崩溃捕捉

    Android 全局异常错误或崩溃捕捉。当出现崩溃,软件不会闪退,会出现弹出一个对话框,异常错误信息保存在sd卡一个文件夹下。后续需要还可以发送到服务器的。我博客网址: http://blog.csdn.net/qq_16064871。我写了...

    为J2EE定制一个用来处理错误的异常处理框架

    是否只是因为在某处代码吃 掉了异常导致你花费无数次时间来跟踪一个bug?是否你的用户直接看到了堆栈的跟踪信息?如果这样的话,你可能需要一种通用的异常管理的策略和一些补充的 代码。这篇文章为你提供了在J2EE项目...

Global site tag (gtag.js) - Google Analytics