lvl
ですenum class
。
switch(lvl)
{
case LogLevel::Trace:
return "Trace";
case LogLevel::Debug:
return "Debug";
case LogLevel::Info:
return "Info";
case LogLevel::Warning:
return "Warning";
case LogLevel::Error:
return "Error";
case LogLevel::Fatal:
return "Fatal";
default:
assert(0 && "Unhandled LogLevel in LevelToStr"); return "???"; // This one?
throw std::invalid_argument( "Unhandled LogLevel in LevelToStr" ); // or this one?
}
コンセンサスはdefault
そこにあるべきですが、関連する質問の意見は、それが何をすべきかについて分かれています。全体をクラッシュしますか?現在のスレッドをクラッシュしますか? 例外を適切に処理しますか?
両陣営はコメントでいくつかの議論を提示していますが、議論は完全に決定的なものではありません.
どちらを使用すべきか、またはどの条件で使用すべきか、誰かが包括的な答えを提示できますか?