抛出异常而不是NullReferenceException?

时间:2016-11-18 05:21:30

标签: c# exception null nullreferenceexception argumentnullexception

c#的代码

android:layout_height="wrap_content"

如果我抛出NullReferenceException,它会产生一个警告,这不是一个好方法。

那么如果有任何异常而不是NullReferenceException?我发现了ArgumentNullException,但是这个代码不太合适,因为b不是参数。

2 个答案:

答案 0 :(得分:2)

正如@AlexeiLevenkov在他的评论中所说,选择一种例外类型是为了个人选择。但是,您应遵守一些指导原则。例如,您已经看过,不会从代码中抛出string1=$('#from_acc').find('option:selected').find('.cr_info').data('symbol'); alert(string1);

MSDN提供了一些非常合理的指导方针,正如您所料。

关于您的实际问题,如果自定义异常不合适,我可能会使用NullReferenceException。 YMMV。

答案 1 :(得分:1)

在这种情况下,如果函数get(a)是确定性的,我会建议抛出ArgumentException并说明a的允许范围。

即。抛出新的ArgumentException(" Parmeter a必须是......"," a");

如果函数get(a)是不确定的(我们不能说什么是可接受的范围)那么ApplicationException会显示一些关于原因的消息(即"由于服务器现在很忙而无法执行操作")。

相关问题