C# catch块中的错误字符串?

C# catch块中的错误字符串?,c#,.net,asp.net,C#,.net,Asp.net,我有以下代码,当出现错误时显示字符串中的错误 有什么办法可以让我在捕手区做这个吗 main() { try { if (a==1) { string = "error1" } elseif (a==2) { string = "error2" } } } catch (e) { } main() { try { } } catch (e) { if (

我有以下代码,当出现错误时显示字符串中的错误

有什么办法可以让我在捕手区做这个吗

  main()
    {
    try
    {
    if (a==1)
    {
     string = "error1"
    }
    elseif (a==2)
    {
     string = "error2"
    }
    }
    }
    catch (e)
    {


    }
main()
{
try
{
}
}

catch (e)
{

if (a==1)
{
 string = "error1"
}
elseif (a==2)
{
 string = "error2"
}

}
如下图所示:

我有以下代码,当出现错误时显示字符串中的错误

有什么办法可以让我在捕手区做这个吗

  main()
    {
    try
    {
    if (a==1)
    {
     string = "error1"
    }
    elseif (a==2)
    {
     string = "error2"
    }
    }
    }
    catch (e)
    {


    }
main()
{
try
{
}
}

catch (e)
{

if (a==1)
{
 string = "error1"
}
elseif (a==2)
{
 string = "error2"
}

}

恐怕你把语法弄得乱七八糟。我建议你在做其他事情之前先读一下这本书。异常处理的语法和语义应该开始有意义了。

为什么要将逻辑放入catch块

  main()
    {
    try
    {
    if (a==1)
    {
     string = "error1"
    }
    elseif (a==2)
    {
     string = "error2"
    }
    }
    }
    catch (e)
    {


    }
main()
{
try
{
}
}

catch (e)
{

if (a==1)
{
 string = "error1"
}
elseif (a==2)
{
 string = "error2"
}

}
您应该仔细阅读异常处理,看看正确的语法是什么,以及为什么要首先使用它


一本关于c#的好书可能也很有用,你可以试试,因为它对初学者很有用…

这不是使用异常处理的正确方法。 异常应该是异常的,不用于条件逻辑


你所需要的只是你的如果。。。else block.

即使它是一个不合适的版本,它也很可能回答您的问题:

    try {

        if (a == 1) {
            throw new Exception("error1");
        } else if (a == 2) {
            throw new Exception("error2");
        }

    } catch (Exception ex) {
        Console.WriteLine("Errormessage = " + ex.Message);
    }

你可能想做这样的事情

 try {

 if(a == 1) {throw new Exception("Erorr1");}

 if(a == 2) {throw new Exception("Erorr2");}

 } catch(Exception e) {
   /*Do something with exception or look below */
 }
这里通过抛出catch子句中提供的异常来引发错误

还是这个

try{
 /*Some code that cause an Exception*/
} catch(Exception e) { //Exception describe the type which wold be caught. 

 string errorType = String.Empty;

 var a = -1; //Assign to it smtg from e that You want to check

 if(a == 1) {
   errorType = "erro1";
 }
 else  if (a == 2) {
   errorType = "erro2";
 }

 /* More Your code*/

}
雇佣你做一些你发现的错误类型的事情


但首先,请阅读您希望在代码中使用的内容

仔细阅读,为什么不这样做。

这到底是什么?请重写所有代码并再次发布。这不是C#。如果这段代码真的是C#(您需要一个
try
语句加上一些其他东西),那么假设在引发异常时设置了
a
的值,并且在
try
之外声明了
string
变量,这可能是使用异常最糟糕的做法。基于变量值做出决策并不是引发异常的原因,而是使用“if”语句的原因。这是一种有争议的做法,例如,当我们有空值是某个字段/参数时,当我们尝试使用它时,系统会抛出一个错误,但如果我们在控制台上显示该空值,则不会发生任何错误。在一些复杂的算法中,也可以通过这种方式停止计算。然而,我们只能假设最聪明的织女星想要什么。