2

tryブロックの内側から出たい:

function myfunc
{
   try {
      # Some things
      if(condition) { 'I want to go to the end of the function' }
      # Some other things
   }
   catch {
      'Whoop!'
   }

   # Other statements here
   return $whatever
}

でテストしましたbreakが、これは機能しません。呼び出し元のコードがループ内にある場合は、上位ループを中断します。

4

3 に答える 3

13

余分なスクリプトブロックtry/catchとそのreturn中の はこれを行うかもしれません:

function myfunc($condition)
{
    # Extra script block, use `return` to exit from it
    .{
        try {
            'some things'
            if($condition) { return }
            'some other things'
        }
        catch {
            'Whoop!'
        }
    }
    'End of try/catch'
}

# It gets 'some other things' done
myfunc

# It skips 'some other things'
myfunc $true
于 2012-11-03T17:34:49.270 に答える
2

あなたが望むことを行う標準的な方法は、条件を否定し、「その他のもの」を「then」ブロックに入れることです。

function myfunc {
  try {
    # some things
    if (-not condition) {
      # some other things
    }
  } catch {
    'Whoop!'
  }

  # other statements here
  return $whatever
}
于 2012-11-04T13:31:47.943 に答える
1

次のようにできます。

function myfunc
{
   try {
      # Some things
      if(condition)
      {
          goto(catch)
      }
      # Some other things
   }
   catch {
      'Whoop!'
   }

   # Other statements here
   return $whatever
}
于 2014-12-22T13:54:21.803 に答える