加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-14 05:02:26 所属栏目:Java 来源:网络整理
导读:我想知道有没有办法在出现异常时转储所有局部变量的状态,以便更好地了解导致异常的环境状态.下面的变量idsToDump在运行时是未知的,我想找出收集中的哪个值导致NPE的状态. 例: public static void main(String[] args) { HashMapInteger,String employees =
我想知道有没有办法在出现异常时转储所有局部变量的状态,以便更好地了解导致异常的环境状态.下面的变量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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读