是否可以使用速记条件运算符引发异常?c#
我正在尝试使用速记操作符检查一个条件,以便抛出一个异常是否可以使用速记条件运算符引发异常?c#,c#,error-handling,C#,Error Handling,我正在尝试使用速记操作符检查一个条件,以便抛出一个异常 throw (result == false) ? new Exception("Result is false.") : null; 在上一行之后的几行中,我收到一个“无法访问的代码检测错误” 我认为如果我在条件不满足时“抛出null”,它仍然会抛出异常 有没有更好的方法来进行这种速记?据我所知,您不能这样做,因为您正在抛出一个异常或一个null,并且在任何一种情况下,下面的代码总是无法访问。您只需在一行上完成此操作: if (!res
throw (result == false) ? new Exception("Result is false.") : null;
在上一行之后的几行中,我收到一个“无法访问的代码检测错误”
我认为如果我在条件不满足时“抛出null”,它仍然会抛出异常
有没有更好的方法来进行这种速记?据我所知,您不能这样做,因为您正在抛出一个异常或一个null,并且在任何一种情况下,下面的代码总是无法访问。您只需在一行上完成此操作:
if (!result) throw new Exception("Result is false.");
这甚至会减少输入字符的数量为什么要在三元操作中执行此操作?如果(Result==false)抛出…,只需使用
。当您发现自己在努力使某些内容适合三元运算符时,通常意味着您首先不应该使用它。FWIW,您可以创建一个存根函数,其中包含类似于throw arg==null的内容?新ArgumentNullException():新ArgumentException();//要执行的操作:执行功能。
。之后的任何代码都是无法访问的。除了存根以后会被有用的代码替换之外,这似乎不是一个好主意。@HABO抛出的帮助函数的问题是,它们最终会进入堆栈跟踪,这会在以后混淆错误的来源。我想补充一下@KenWhite的答案:您需要知道何时使用它。当然,避免到处写if/else
语句是很好的,但这会损害代码的可读性。在JavaScript中,字符数并不重要(下载较小的文件),因此我更愿意关注代码的可读性,而不是节省几个字节,甚至是一秒钟的时间。我总是试着编写代码供他人阅读(遵守编码惯例、注释/记录…),即使是在我独自工作时也是如此。我建议你也这样做。一旦你开始与一群程序员一起工作,它也更容易适应。@Blorgbeard-我没有想到辅助函数。我正在考虑粗略地构造一个类,并希望在函数体中放入一些东西,很快就会被函数代码取代,这比一个//TODO
注释略多一些。在这种情况下,总是抛出一个异常,以便在检查null参数时知道您遇到了一些尚未实现的问题。抛出新的NotImplementedException更合适(“请稍后再试。”+(arg==null?“仅供参考:arg为null。”:”)代码>。标记为答案。最简单的答案总是摆在你面前。我的脑力在这么晚的时候越来越弱:|