首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >C#空引用异常,如何在指定的行中找到罪魁祸首

C#空引用异常,如何在指定的行中找到罪魁祸首
EN

Stack Overflow用户
提问于 2020-05-01 11:10:00
回答 1查看 771关注 0票数 1

我们都对这种例外感到厌倦,但有没有办法迅速找到冒犯的东西呢?通常,这样的异常会抛出如下一行:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var myVar = somethingUninitallized.property;

很容易看出,任务的右边是原因。然而,有时这些长队是这样长的:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var myVar = x.DoSomething(y.FirstDoThis(isThisInitiallized).aProperty, z.ThenDoThis(whatAboutThis).anotherProperty).ComplicatingThings().thisHappensSometimes;

在这条线上我们得到了例外。是的,我们本可以用不同的方式编写代码,但可能是调试其他人的代码,修改代码需要重新编译15分钟、需要授权或任何其他障碍。这是一个微不足道的例子,我也可以在linq上考虑,但肯定还有其他更复杂的场景。我通常会在2020年逐个检查每件东西。

是否不可能从调试器工具中获得,或者某种程度上,这是具有空引用的东西?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-01 13:18:42

以下是从调试System.NullReferenceException复制的答案,由托马斯·阿德尔编写

Visual 中使用空参考分析的

如果您使用的是Visual 2017或更高版本,则可以使用“空引用分析”功能。这样,Visual就可以准确地向您展示什么是null。让我们使用这个方法链接示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var street = service.GetUser().Address.Street;

若要启用分析,请转到“调试”、“窗口”、“异常设置”。检查公共语言运行时异常(如果尚未检查)或扩展节点并检查您感兴趣的异常。

在这种情况下,您可以检查System.NullReferenceException。运行代码时,调试器会在NullReferenceException上中断,现在您将看到抛出的异常窗口:

瞧!窗口显示"ConsoleApp18.User.Address.get返回null“。这正是我们想看到的。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61549156

复制
相关文章
如何在Java和Swift中避免空引用异常?
您最近在代码中遇到过NullPointerException(空指针异常)吗? 如果没有,那你一定是一个很细心的程序员。在Java应用程序中最常见的异常类型之一就是NullPointerExcepti
程序你好
2018/08/01
2.7K0
如何在Java和Swift中避免空引用异常?
C# 可为空引用类型
我对 C# 钟爱有加,我认为它严谨的语言设计非常棒。尽管如此,就目前而言,即使在 C# 版本 7 发布后,此语言也仍称不上完美。我这里指的是,尽管有理由期望 C# 会一直不断添加新功能,但遗憾的是,同时也存在着一些问题。
郑子铭
2023/08/29
1960
C# 可为空引用类型
C# 8.0 如何在项目中开启可空引用类型的支持
C# 8.0 引入了可为空引用类型和不可为空引用类型。由于这是语法级别的支持,所以比传统的契约式编程具有更强的约束力。更容易帮助我们消灭 null 异常。
walterlv
2023/10/22
3600
贴心 | Visual Studio 2019 空引用异常的改进
空引用异常是最常见的程序错误之一。微软昨天发布的VS2019对此有了非常贴心的改进,我们来看看吧!
Edi Wang
2019/07/09
1.3K0
贴心 | Visual Studio 2019 空引用异常的改进
C# WinForm 设置DataGridView选中指定行
也有其他网友代码Cells[0]; 如下: 我试了 ,填0和1调试报错。所以 我填2
全栈程序员站长
2022/09/14
6880
如何使用 Optional 模式解决 C# 中烦人的空引用问题
注意,本文中有长篇幅代码,在微信订阅号里阅读体验不佳,介意的朋友可以移步我的博客浏览:
郑子铭
2023/08/30
9670
如何使用 Optional 模式解决 C# 中烦人的空引用问题
C# 强转空会不会出现异常
有小伙伴问我强转 null 会不会出现异常,我告诉他,如果是引用类型那么不会,如果是值类型,那么会出现空异常
林德熙
2022/08/04
6140
C# 强转空会不会出现异常
有小伙伴问我强转 null 会不会出现异常,我告诉他,如果是引用类型那么不会,如果是值类型,那么会出现空异常
林德熙
2019/09/13
8440
【C#】添加引用方式抛出和捕获干净的WebService异常
说明:【干净】指的是客户端在捕获WebService(下称WS)抛出的异常时,得到的ex.Message就是WS方法中抛出的异常消息,不含任何“杂质”。
AhDung
2018/09/13
1.1K0
【C#】添加引用方式抛出和捕获干净的WebService异常
关于是否在C#中加入不可空引用类型的争论
来自微软的Mads Togersen在近期所提出的一条提议,即在C#语言中加入对不可空引用类型的支持在.NET社区中引起了热烈的争论。人们对此提议的反应大相径庭,既有人对此表示赞赏,也不乏倾向于保持现状的意见。 在Reddit上,这条提议引起了大量关于向后兼容性方面的疑问。Strilanc认为,如果应用了这一特性,按照这条提议的做法无法实现现有应用的平滑过渡: 这条提议还有待改进,它对于保证二进制兼容性、源代码兼容性以及现有代码的渐进式过渡方面还存在着一些考虑不周的情况。 该提议造成了程序集级别上的意义转
逸鹏
2018/04/09
1.1K0
C# 堆与栈、值类型与引用类型、可空类型
栈是一种先进后出的数据结构,是编译期间就分配好的内存空间,因此你的代码中必须就栈的大小有明确的定义。栈中每个指针(当运行到那个变量时)会指向堆中的某一内存区域或说是空间。 堆(heap)就直接是内存区域了,它是为了栈的引用而开发内存的。通常内置变量就是值类型是被保存在栈中的。其他由.NET框架(Framework)提供的,或者是我们自己定义的对象即引用类型,一般被创建在堆中并将由栈中变量引用。是程序运行期间动态分配的内存空间,你可以根据程序的运行情况确定要分配的堆内存的大小。
aehyok
2019/02/25
9840
如何在以太坊合并中找到机会?
以太坊合并可能导致一场经济上的混乱局面,而在这一系列不确定中,仍存在确定性的机会。
小将
2022/08/11
5400
如何在以太坊合并中找到机会?
C# 可空引用类型 Nullable 更强制的约束:将警告改为错误 WarningsAsErrors
于是 C# 8.0 带来的可空引用类型由于默认以警告的形式出现,所以实际上约束力非常弱。
walterlv
2023/10/22
4050
C# 可空引用类型 Nullable 更强制的约束:将警告改为错误 WarningsAsErrors
如何在 Java8 中风骚走位避开空指针异常
要说 Java 编程中哪个异常是你印象最深刻的,那 NullPointerException 空指针可以说是臭名昭著的。不要说初级程序员会碰到,即使是中级,专家级程序员稍不留神,就会掉入这个坑里。
Java技术江湖
2019/09/24
7620
如何在 Java8 中风骚走位避开空指针异常
C# 8.0 可空引用类型中的各项警告/错误的含义和示例代码
C# 8.0 引入了可为空引用类型和不可为空引用类型。当你需要给你或者团队更严格的要求时,可能需要定义这部分的警告和错误级别。
walterlv
2023/10/22
8810
C# 8.0 可空引用类型中的各项警告/错误的含义和示例代码
使用“空”对象替代引用是否为空判断
使用Null对象替代引用是否为空判断 编程语言中最常见运行时异常非NullPointerException莫属,只要程序依赖于外部的输入数据,比如说http请求传递的查询字符串参数、关系数据库连接、磁盘文件读取,空引用异常就无法避免。通常,程序需要满足某些条件才能正常的往下执行,假如这些条件依赖外部输入数据,而这些外部输入的数据肯定无法保证百分百不出错,比如说网络连接失败、数据库用户名密码错误等,当程序被这些节外生枝的障碍打断时,空引用异常就极有可能被引发。 比如说,原本我们调用一个方法,这个方法会执行连接
用户1608022
2018/04/11
7.6K0
如何在Shopify中找到大量XSS漏洞
XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。
小生观察室
2021/08/29
8680
如何在Shopify中找到大量XSS漏洞
jq 判断是否为空,为空隐藏指定 div
<style>.mydiv{ width:300px; height:300px; background:red;}</style> <div class="mydiv">     <div class="content">          这是一句话,删除的话会让 mydiv display:none;          </div> </div> <script src="https://lib.baomitu.com/jquery/3.4.1/jquery.min.js"></script> <sc
Savalone
2020/02/11
7.1K0
如何在 Java8 中风骚走位避开空指针异常
要说 Java 编程中哪个异常是你印象最深刻的,那 NullPointerException 空指针可以说是臭名昭著的。不要说初级程序员会碰到,即使是中级,专家级程序员稍不留神,就会掉入这个坑里。
JAVA葵花宝典
2019/08/09
8060
如何在 Java8 中风骚走位避开空指针异常
C# 8.0 的可空引用类型,不止是加个问号哦!你还有很多种不同的可空玩法
C# 8.0 引入了可空引用类型,你可以通过 ? 为字段、属性、方法参数、返回值等添加是否可为 null 的特性。
walterlv
2023/10/22
1.6K0
C# 8.0 的可空引用类型,不止是加个问号哦!你还有很多种不同的可空玩法

相似问题

C#:空引用异常

24

Unity C#空引用异常

30

Gridview空引用异常c#

25

c# dataGridView空引用异常

13

C#中的空引用异常

32
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文