`

对异常绝不要轻易吃掉

 
阅读更多

最近项目中发现解释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...

    程序崩溃异常捕获

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

    易语言异常处理辅助模块

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

    Java异常处理教程

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

    UncaughtException不让Android应用异常退出

    "UncaughtException不让Android应用异常退出"这个主题,就是关于如何处理程序中的未捕获异常,以防止应用突然崩溃,从而提升用户体验。在这个问题上,我们可以从以下几个方面来探讨: 1. **...

    Java异常分装实例

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

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

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

    全局异常捕捉 c#WinForm异常处理

    这里建立了一个有关异常处理的对话框类,来实现异常的捕捉。通过使用ThreadException, App.CurrentDomain.UnhandledException捕捉程序里不可预知的异常,可以帮助开发者方便的找到发生异常的位置。

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

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

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

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

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

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

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

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

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

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

    异常统一处理实例

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

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

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

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

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

    Visual Studio 遇到了异常,这可能是由某个扩展导致的

    只要在VS2010源码编辑器中输入一个字符,它就报道错误了 "visual studio 2010 遇到了异常,可能是由某个扩展导致的......"。刚开始一看,以为是扩展引起的,那我就把vs中所有的扩展暂时禁用一下,结果bug还是依旧。...

    java 数组下标越界异常(ArrayIndexOutOfBoundsException)

    3. **避免负数索引**:除非明确知道某些特殊情况,否则不要使用负数索引。 4. **使用foreach循环**:对于集合类,使用foreach循环可以避免手动管理索引,降低出错概率。 ### 示例代码 ```java public class ...

Global site tag (gtag.js) - Google Analytics