C# 使用throw,throw ex,throw new Exception() 抛异常区别与建议
异常代码
try
{
RunThrowException();
}
catch (Exception ex)
{
throw;
// throw ex;
// throw new Exception("包装的异常", ex);
}
static void RunThrowException()
{
var b = Console.ReadLine();
var = int.Parse(b);
}
如果输入的是string类型,会抛异常
throw: 来抛出所有异常堆栈,包含int.Parse()内部的异常。
throw ex: 不会抛出内部异常堆栈。它会将到现在为止的所有信息清空,认为你catch到的异常已经被处理了, 只不过处理过程中又抛出新的异常,从而找不到真正的错误源。
throw new Exception()包装一个异常,把内部异常Exception也抛出,这样抛出的异常是最全面详细的异常。
推荐使用Throw 或者Throw new Exception()