2016-09-01 2 views
4

既存のクラスにchangeCompany()のコントロールを追加する必要があります。changeCompany内でリターンを使用するときに何かを元に戻す必要があります

私は以下のコードはOKだと思いますが、私は疑いがあります。「返品」の注文は、元の会社への返品が行われたことを暗示していますか? また、revertToPreviousCompany()のようなものが私の知らない声明を追加することはありますか?

try 
{ 
    changeCompany(companyId) 
    { 
     // the method will produce a message and return false if an error 
     if (!this.doSomeChecks()) {    
      return; 
     }   
     // much more code below 

答えて

6

はい、状況によっては、ランタイム自体で完了していない場合でも元に戻すことさえできない場合もあります。
呼び出すコードの周りにtry - catchのコールスタックがあり、エラーが発生する可能性がありますが、コードを呼び出すコードがすでにトランザクションを確立している場合、ハンドラは呼び出されないため、 changeCompany

+0

'changeCompany()'ステートメントの中括弧は、他の会社が使用されている範囲を定義することを追加することができます。そのスコープが残っている場合( 'return'ステートメントでの質問のように)、元の会社が再び使用されます。 –

関連する問題