我有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
答案 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;
}
}