【问题标题】:How to know that a void runs? [closed]如何知道虚空运行? [关闭]
【发布时间】:2012-04-17 04:01:08
【问题描述】:

想询问 void 类型,所以我可以知道它是否有效

在 PHP 中我可能会遇到这样的情况:

if(mysql_query($query))
{ bla bla }
else
{ print error }

如何在 ASP.NET 上这样做?

我正在尝试这样:

if (k.EditPassword(username.Text, oldPassTxt.Text, newPassTxt.Text) == true )
{
Response.Redirect("sample.aspx");
}
else
{ print error }

但当然不能这样,因为 void 不是布尔值

【问题讨论】:

  • 您要处理的具体情况是什么?
  • 如果某事没有成功标志,理想情况下,您应该能够假设如果执行通过它,则它已成功执行(换句话说,如果它没有抛出异常)。但是,这取决于谁编写了代码或者您对它的信任程度,这可能不是一个安全的假设(而且不得不假设任何事情......是一种相当不愉快的感觉)。
  • 已经解决了,对不起..我真的忘记了try catch..现在它可以工作了..我的完整代码:EmpWS k = new EmpWS();尝试 { k.EditPassword(username.Text, oldPassTxt.Text, newPassTxt.Text); } catch (Exception ex) { Response.Write(ex + "Eror"); }

标签: c# asp.net void


【解决方案1】:

通常 void 函数会以其他方式通知您它们已失败。通常他们会抛出一个异常:

try
{
    k.EditPassword(...)
}
catch(ApplicationException ex)
{
    // print Exception
}
Response.Redirect(...)

其他时候他们会设置状态变量或其他东西:

k.EditPassword(...)
if (k.Result == Result.OK)
    Response.Redirect(...)
else
    // print error...

查看文档或源代码以了解您尝试处理的条件是了解如何处理它的唯一方法。

【讨论】:

  • 谢谢..我真的忘记了这个 try catch 条件......这个代码是我需要的......
【解决方案2】:

您可以使用文字控件并向其中添加文本。所以你的代码会是这样的,

if (k.EditPassword(username.Text, oldPassTxt.Text, newPassTxt.Text) == true )
{
Response.Redirect("sample.aspx");
}
else
{ Literal1.Text = error; }

文字应该在设计文件中,您可以从工具箱中添加它。

但更好更合适的方法是,

  1. 记录下来。 (你需要一个日志机制)

  2. 编写单元测试:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-12
    • 1970-01-01
    • 2017-05-06
    • 1970-01-01
    • 2014-03-03
    相关资源
    最近更新 更多