异常处理:通过Main方法显示异常消息

时间:2018-07-28 22:58:25

标签: c#

我有3种方法(包括In [87]: df.groupby(['Group']).apply(lambda x: x['Value'].shift(-1).cumsum().shift().fillna(0)) Out[87]: Group 1 0 0.0 1 2.0 2 7.0 3 11.0 2 4 0.0 5 5.0 6 14.0 7 17.0 Name: Value, dtype: float64 ),其中每种方法都进行了异常处理。现在,我想通过Main打印其他方法的异常消息。

注意:我只想使用一个Main,并将其放在Console.WriteLine()中。

Main

2 个答案:

答案 0 :(得分:2)

然后只需在您的其他方法中重新抛出相同的异常,如下所示。而且,由于主调用方法会处理异常,因此不需要对每个方法进行try..catch处理。如果在调用的方法中发生异常,它将起泡到Main()并被捕获

catch (Exception ex)
{
    throw;
}

答案 1 :(得分:0)

如果您删除所有 catch(异常除外)异常块,您的生活会更好。您应该使用最少的异常处理,并且仅捕获特定的异常(即 DivideByZeroException 而不是Exception),并且仅处理可以有意义地处理的异常。

您的代码实际上应该看起来像这两个选择之一:

(1)

 静态void Main(string [] args)
{
    尝试
    {
        Console.WriteLine(Arthimatic(10,0));
        Console.WriteLine(“ Hello World!”);
        Console.ReadLine();
    }
    捕捉(DivideByZeroException ex)
    {
        Console.WriteLine(“ Message” + ex.Message);
        Console.ReadLine();
    }
}

私人静态int Arthimatic(int num1,int num2)
{
    返回Divide(num1,num2);
}

私有静态int Divide(int num1,int num2)
{
    返回num1 / num2;
}
 

(2)

 静态void Main(string [] args)
{
    如果(Arthimatic(10,0)== null)
    {
        Console.WriteLine(“发生错误。”);
    }
    其他
    {
        Console.WriteLine(“ Hello World!”);
    }
}

私人静态诠释? Arthimatic(int num1,int num2)
{
    返回Divide(num1,num2);
}

私人静态诠释?除(int num1,int num2)
{
    尝试
    {
        返回num1 / num2;
    }
    捕捉(DivideByZeroException ex)
    {
        返回null;
    }
}