java – 在异常情况下转储变量的状态

前端之家收集整理的这篇文章主要介绍了java – 在异常情况下转储变量的状态前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想知道有没有办法在出现异常时转储所有局部变量的状态,以便更好地了解导致异常的环境状态.下面的变量idsToDump在运行时是未知的,我想找出收集中的哪个值导致NPE的状态.

例:

public static void main(String[] args) {
    HashMap<Integer,String> employees = new HashMap<Integer,String>();
    employees.put(1,"James");

    Integer[] idsToDump = new Integer[] { 1,2,3 };
    for (Integer employeeId : idsToDump) {
        String name = employees.get(employeeId).toLowerCase();
        System.out.println(name + " is employee number: " + employeeId);
    }

}

输出

james is employee number: 1
Exception in thread "main" java.lang.NullPointerException

题:
有没有一些JVM参数,我可以传递转储关于局部变量的当前状态的信息?即我们得到

java.lang.NullPointerException

和(这是我之后的部分)

values: employeeId=2

我想能够在客户端站点上执行此操作,因此无法访问Eclipse或调试工具,只寻找JVM参数,也无法使代码更改.我看过他们,但找不到任何东西.在此期间,我也会继续搜索;)

解决方法

鉴于您的所有限制,除了jdb之外,我不能推荐任何其他操作.开火那个坏男孩,开始逐行通过客户端代码.我知道你说没有调试工具,但是除非它们是JRE的环境,否则应该已经安装了jdb.
原文链接:https://www.f2er.com/java/123706.html

猜你在找的Java相关文章