我想禁用我的catch语句的警告,但仅限于catch语句!与.cs文件中的方法相同!
重要! :我不想删除 SystemException e 参数!我的特定需求是具体使用 Razor 语法来抑制catch语句的waring。与没有剃刀的.cs文件中的工作方式相同。
初始情况:
<div>
@{
try
{
//some code
<div>yes</div>
}
catch (SystemException e)
{
<div>error</div>
}
}
</div>
我明白了:
变量'e'已声明但从未使用过
a)如果我将pragma
语句放在catch
附近,我会收到以下错误:
#pragma warning disable 0168
catch (SystemException e)
#pragma warning restore 0168
错误11只有赋值,调用,递增,递减,等待和新对象表达式才能用作语句_Header.cshtml 72 13
b)如果我在@
阻止之前放置了一把剃刀 - <div>
,我会收到以下错误:
@<div>error</div>
错误5;期待_Header.cshtml 1 1
c)如果我在;
块之后放置<div>
,似乎没问题,但在加载网站时我遇到编译错误:
@<div>error</div>;
编译错误:
Line 379: #line default
Line 380: #line hidden
Line 381:item => new System.Web.WebPages.HelperResult(__razor_template_writer => {
Line 382:
Line 383:BeginContext(__razor_template_writer, "~/Views/Shared/_Header.cshtml", 1947, 16, true);
答案 0 :(得分:2)
如果你从不使用catch异常,你可以这样做:
<div>
@{
try
{
//some code
<div>yes</div>
}
catch
{
<div>error</div>
}
}
</div>
虽然我认为在你的捕获中包装pragma只是为了忽略对未使用的变量的警告,坦率地说,这是一个可怕的提议(不仅它看起来很丑陋,但我认为它会降低可读性,并且让事情变得混乱 - 你使用的是变量与否?),如果真的需要这样做,请尝试:
<div>
@{
try
{
//some code
throw new SystemException();
<div>yes</div>
}
catch
(
#pragma warning disable 0168
SystemException e
#pragma warning restore 0168
)
{
<div>error</div>
}
}
</div>
答案 1 :(得分:0)
如果您不需要e
变量,但仍需要专门捕获SystemException
例外,则可以使用:
<div>
@try
{
// Some code here.
}
catch (SystemException)
{
<div>
A system error occurred.
</div>
}
</div>
如果您可以使用有效代码来避免警告,则无需使用#pragma
来禁止警告。警告是有原因的。