微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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.jb51.cc/java/123706.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐