是否有可能捕获无法处理的异常(在c#中)?
本文关键字:异常 有可能 处理 是否 | 更新日期: 2023-09-27 18:12:45
我有一个捕获T异常的泛型类:
<>之前公共抽象类ErrorHandlingOperationInterceptor<: OperationInterceptor,其中T: ApiException{private readonly Func<_resultFactory;保护ErrorHandlingOperationInterceptor (Func带有特定异常的子类,例如
<>之前BadRequestException>{public BadRequestOperationInterceptor(): base(() =>new OperationResult.BadRequest()) {}}之前这一切似乎都很完美。但是,不知何故,在日志中(一次,而不是每次)是InvalidCastException:
<>之前系统。InvalidCastException:无法转换类型为"ErrorHandling.Exceptions"的对象。ApiException'类型为' errorhandling . exceptions . unexpected internalservererrorreexception '。在c:'BuildAgent'work'da77ba20595a9d4'src'OperationModel'Interceptors'ErrorHandlingOperationInterceptor.cs:第28行之前第28行是个问题。
我错过了什么?我是不是做了什么蠢事?
正如smith所说,你们的T
是ApiErrorResource
型的。你是,在你的代码的某些地方,试图创建你的ErrorHandlingOperationInterceptor
与Exception
,不是从ApiErrorResource
派生的。
try
{
// throw Exception of some sort
}
catch (BadRequestException ex)
{
BadRequestOperationInterceptor broi = new BadRequestOperationInterceptor ();
}
catch (Exception ex)
{
// this is NOT right
BadRequestOperationInterceptor broi = new BadRequestOperationInterceptor ();
}