You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否在Visual Studio调试模式外自动定位NullReferenceException的空变量?

自动定位NullReferenceException中的空成员(Unity环境下)

当执行包含多层嵌套成员的赋值代码时,例如:

Obj.Field.NextField.NextNextField = NextObj.OtherField.NextOtherField.NextNextOtherField;

若等式两侧除最后一个成员外的任意变量为空,会触发NullReferenceException,但无法直接定位具体是哪个成员为空。

当前我通过自定义方法手动排查:

public static void PrintNullOrigin(params object[] _args)
{
    for (int i = 0; i < _args.Length; i++)
    {
        if (_args[i] == null)
        {
            print(_args[i] + " is null!");
        }
    }
}

调用时需要手动传入所有可能为空的成员:

PrintNullOrigin(Obj, NextObj, Obj?.Field, NextObj?.OtherField, ...);

我想知道是否存在一种方案,能在每次抛出NullReferenceException时,自动通过日志完成空成员的定位?我曾尝试通过Exception对象获取异常所在行的成员,但未找到简便方法。

关键限制:必须在Visual Studio调试模式外实现该功能,因为Unity中使用VS调试模式容易崩溃且存在性能损耗。

内容的提问来源于stack exchange,提问作者seppel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 09:42:30