我想創建一個方法,告訴我如果異常是否可以重試。例外情況來自第三方庫。所以我有這樣的事情:長列表捕獲的性能影響C++
bool isRetryable (std::exception_ptr ex) {
try {
if(ex) {
std::rethrow_exception (ex);
}
return true;
} catch (const ExceptionA& ex) {
return true;
} catch (const ExceptionB& ex) {
return true;
} catch (const ExceptionC& ex) {
return true;
} catch (const ExceptionD& ex) {
return false;
} catch (const ExceptionE& ex) {
return false;
} catch (const ExceptionF& ex) {
return false;
}
}
例外列表可以去,只要100,所以我的問題是 - 什麼是例外一長串的影響,並沒有任何其他的方式來完成相同的目標?
我的意思是你可以嘗試測量自己。如果例外有一個共同的基礎,你可以嘗試dynamic_casts:但如果他們更快,你必須測量。 – Hayt