いくつかの方法がありますが、最も簡単な方法は、いくつかの関数を単純に無効にして、さまざまなレイヤーを抽象化することです(これは、自分が深く進んでいることに気付いた場合は、とにかく実行する必要があります)。
if ( /* Condition */ ) {
value = aFunctionSaysWhat();
} else {
// value = Error 1
}
....
value aFunctionSaysWhat(){
if ( /* Condition */ ) {
return aSecondFunctionHere();
} else {
// return Error 2
}
}
基本的な前提は、関数は可能であれば抽象化の1つの層に存在し、1つのことを実行する必要があるということです。
次の可能性は、それをすべて平坦化することです。これは、最初のネストされた方法よりも優れていますが、基本的に同様の複雑さを持っています。オプションがいくつかあり、それ以上追加する予定がない場合は、機能的なアプローチよりもはるかにクリーンになる可能性があります。
if(ErrorCondition1){
//Error 1
}else if(ErrorCondition2){
//Error 2
}else if(ErrorCondition3){
//Error 3
}else{
//Superb
}
最後に、必要な回答を含むハッシュまたはマップを保存し、完全に削除することができます。これを実装する機能は、結果をハッシュする機能に依存します。
Results = {'Result1':'Error1', 'Result2':'Error2', 'Result3':'Error3', 'Success':'Superb'}
return Results[ConditionHash(Condition)];