Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以使用速记条件运算符引发异常?c#_C#_Error Handling - Fatal编程技术网

是否可以使用速记条件运算符引发异常?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。”:”)。标记为答案。最简单的答案总是摆在你面前。我的脑力在这么晚的时候越来越弱:|