我创建了一个自定义异常类,如下所示
namespace testingEXception
{
public class CustomException : Exception
{
public CustomException()
{
}
public CustomException(string message)
: base(message)
{
}
public CustomException(string message, Exception innerException)
: base(message, innerException)
{
}
}
}
我在这样的同一解决方案中从不同项目中抛出异常
namespace ConsoleApplication1
{
public class testClass
{
public void compare()
{
if (1 > 0)
{
throw new CustomException("Invalid Code");
}
}
}
}
像这样抓住它
namespace testingEXception
{
class Program
{
static void Main(string[] args)
{
try
{
testClass obj = new testClass();
obj.compare();
}
catch (testingEXception.CustomException ex)
{
//throw;
}
catch (Exception ex)
{
// throw new CustomException(ex.Message);
}
Console.ReadKey();
}
}
}
问题是,异常不是被第一个 catch 捕获,而是被第二个 catch 捕获,尽管异常类型显示 CustomException。