我正在进行http调用,该调用将返回200、412或403 statusCode。如果返回错误代码,我将引发异常
if(response.statusCode == 412){
throw InvalidCredentialsException();
}
else if(response.statusCode == 403){
throw SalesManUnregisteredException();
}
else{
throw ServerException();
在存储库实现中,我需要捕获错误,以便可以返回适当的故障响应
try {
//code
}
catch (e){
if(e == InvalidCredentialsException())
return InvalidCredentialsFailure();
else if(e == SalesManUnregisteredException())
return SalesManUnregisteredFailure();
else
return ServerFailure();
}
当我打印vars时
print(e) //Instance of InvalidCredentialsException
print(InvalidCredentialsFailure()) //Instance of InvalidCredentialsException
但是当我比较时,它返回false
print(e == InvalidCredentialsFailure()) //false
我该如何等同于这些相同的实例,以便根据抛出的异常返回失败类?
如果要处理不同类型的异常,则应使用on
关键字指定要捕获的类型:
try {
//code
} on InvalidCredentialsException catch (e) {
return InvalidCredentialsFailure();
} on SalesManUnregisteredException catch (e) {
return SalesManUnregisteredFailure();
} catch (e) {
return ServerFailure();
}
catch
如果找不到另一个捕获,则最后一个捕获所有其他异常。
只是为了提供信息,如果您想比较对象的类型,则应使用is
关键字like (e is SalesManUnregisteredException)
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句