2

4 行と 2 つの throw ステートメントがあります。

Pseudocode ;
In function f () 
     if a == 2 
           throw SMT_0 
     if b == 3  
           throw SMT_1 

a != 2 と b != 3 の場合、両方の throw ステートメントを同時にスローしたいと考えています。どのようにできるのか ?

 ex : 
     if a!= 2 && b != 3 
            throw SMT_0 and SMT_1
4

3 に答える 3

2

それはいけません。ただし、任意のオブジェクトをスローできるため、OO 手法を使用して、スローする 1 つのオブジェクトに と の両方からの関連情報を含めることができSMT_0ますSMT_1

スローされた値は何catchですか? ブロックはどのように見えますか?

更新

OK、入力が正しくなかった理由をスローしたいようですね。

質問: なぜですか? すべての理由を報告しなければならないことはそれほど重要ですか。おそらく、理由の 1 つを報告するだけで済み、ユーザーにそれを修正してもらい、繰り返すことができますか? (情報の受信者がユーザーではなくプログラマーである場合、すべてのエラーを一度に報告しなければならない理由はまったくありません)。

ここで、すべてのエラーを報告する必要がある場合は、1 つの値ではなく配列を単純にスローできenum CLASSNAME.REASONSます。

于 2011-03-10T14:43:17.000 に答える
1

例外でプログラムフローを制御しようとしているようなにおいがします...良い考えではありません。

しかし、あなたが尋ねるので、なぜ SMT_01 をスローする 3 番目の代替手段を用意しないのですか?

于 2011-03-10T14:44:11.177 に答える