gpt4 book ai didi

c# - 如何确定 "x[]"可能抛出哪些异常?

转载 作者:太空狗 更新时间:2023-10-29 22:27:04 25 4
gpt4 key购买 nike

方括号的 C# 引用说:方括号 [] 用于数组、索引器和属性。它们也可以与指针一起使用。 (它还说,对于数组)如果数组索引超出范围,则会抛出异常。

因此,当您在数组以外的对象上使用方括号时,您如何知道可能会抛出哪些异常?

对于字典(例如),如果您使用访问器方法,例如 Dictionary.TryGetValue您可以轻松地查找该方法可能抛出的异常,但是 C# reference for square brackets []只说它可能会抛出数组索引超出范围的异常。

因此,如果您想对某些数据类型使用方括号,您可以在哪里查找该数据类型可能引发的异常?

我尝试访问字典中一个不存在的成员,只是想看看会发生什么,我得到了 KeyNotFoundException。我知道您也可以获得 NullReferenceException。这在哪里记录?完整列表是什么?

最佳答案

它在每个实现中都有记录。没有详尽的列表,因为运算符可以重载,所以理论上可以抛出任何异常。该运算符通常记录为 Item 属性。

这里有一些关于特定用途的文档:

Dictionary.Item

Array.Item

但是,对于可能 抛出的内容,您不需要详尽的列表。异常通常由于以下两个原因之一而被捕获:您想要一些事情(就像在 TryParse 之前的几天,捕获异常是捕获错误的最简单方法日期格式),或者您只想记录发生的异常并记录它,在这种情况下,您通常会重新抛出实际的异常。

捕获特定异常对前一种情况有好处。例如,如果您捕获到 NullReferenceException,通常会重新抛出一个不同的异常,指示哪个引用为 null(因为这不是普通 NullReferenceException 的一部分)

在后一种情况下,如果您只想记录并重新抛出,则捕获通用 Exception 没问题,因为您可能无能为力。

关于c# - 如何确定 "x[]"可能抛出哪些异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14991333/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com