我想问一下,如果有一种方法让我在我的try块中放入一个if条件,当条件返回true时它会进入我的try条件的下一行吗?
以下是我的代码片段。
private void sendReminderEmail_MethodInvoking(object sender, EventArgs e)
{
try
{
if (editedCustomerRequest.OwnerID == null)
{
return;
}
Hashtable xsltValues = new Hashtable();
xsltValues.Add("fso:LicenseKeyRequest", request);
string xsltTemplateFile = string.Format("{0}{1}", workflowProperties.WebUrl, _configItems[_lkrAdminReminderEmailTemplateUrl]);
Email email = new Email(xsltTemplateFile, xsltValues);
}
答案 0 :(得分:1)
没有
尝试条件
但是,如果您正在寻找可以在循环中使用的continue
或break
之类的东西,那么try block就没有这样的关键字。这是因为try
块仅用于异常捕获,或者如果您想要添加finally
代码而不管返回什么内容。 try
块不是有条件的。但是,这可以通过以适当的方式构造循环/条件块来实现。
try
{
if (editedCustomerRequest.OwnerID != null)
{
Hashtable xsltValues = new Hashtable();
xsltValues.Add("fso:LicenseKeyRequest", request);
string xsltTemplateFile = string.Format("{0}{1}", workflowProperties.WebUrl, _configItems[_lkrAdminReminderEmailTemplateUrl]);
Email email = new Email(xsltTemplateFile, xsltValues);
}
}
您可以使用goto
,但我不推荐它。诉诸goto
意味着你做错了什么,而应该改编你的计划。我只是想让你知道技术上是一种选择。注意:goto
仅在其后面有代码时才有效。但是再次......你不应该使用它。
try
{
if (editedCustomerRequest.OwnerID == null)
{
goto exitTry;
}
Hashtable xsltValues = new Hashtable();
xsltValues.Add("fso:LicenseKeyRequest", request);
string xsltTemplateFile = string.Format("{0}{1}", workflowProperties.WebUrl, _configItems[_lkrAdminReminderEmailTemplateUrl]);
Email email = new Email(xsltTemplateFile, xsltValues);
}
catch(){}
exitTry:
答案 1 :(得分:0)
只需反转if子句:
if (editedCustomerRequest.OwnerID != null)
{
// rest of your code
}
那就是我对你的问题所理解的。我更喜欢你现在的方式,但这是基于意见的。
答案 2 :(得分:-1)
当您使用try / catch语句时,它会分析您在try语句中放入的所有代码。如果您正在寻找一种方法来查看try语句失败的位置,我建议您只需调试代码。您还可以在try语句中创建多个try catch。