2

我在 try-catch 中有一个未初始化的变量。

try
{
    var customcontroldata = svc.queryLookupsXml("customcontroldata");
}
catch
{
    Response.Write(@"<script>alert('We laugh at you');window.location.replace('Accounts.aspx');</script>");
    Response.End();
 }

我试图将 try-catch 之外的变量初始化为未完成。我将如何让 customcontroldata 变量在此方法中初始化,该方法稍后也会在我的代码中使用?

4

4 回答 4

5

您将要在try块之外声明变量。您可以将其分配给 null,然后在您的 之后catch,检查它是否为 null,然后再对其进行任何操作。

在这种情况下,您还需要具体说明它是对象的类型,因为在声明它时您将无法将其分配给您想要的最终值,因为这会发生在您的try.

于 2013-10-02T15:46:55.123 回答
3
        XmlNode customcontroldata = null;
        try
        {
            customcontroldata = svc.queryLookupsXml("customcontroldata");
        }
        catch
        {
           Response.Write(@"<script>alert('We laugh at you');window.location.replace('Accounts.aspx');</                    script>");
            Response.End();
        }
于 2013-10-02T15:47:10.523 回答
1

在您的代码中,customcontroldata范围在 try 块内,因此不存在于该范围之外。尝试在尝试之外声明它,如下所示...

myObjectType customcontroldata; = null4
try
{
    customcontroldata = svc.queryLookupsXml("customcontroldata");
}
catch
{
    Response.Write(@"<script>alert('We laugh at you');window.location.replace('Accounts.aspx');</                    script>");
    Response.End();
}
于 2013-10-02T15:48:04.970 回答
0

您想在 Try/Catch 块之外声明变量,初始化为 null/空值。

您可以在块内进行分配,但如果您打算在 TryCatch 块之外使用它,则始终测试变量是否为空/空。

于 2013-10-02T15:50:25.450 回答