0

外部 API を呼び出そうとしています。呼び出しの 4 つ以上の例外を処理します。

複数の呼び出しを行うと、コードは非常に急速に増加します。例外を処理してデータを返すような呼び出しごとにラッパーを作成する必要がありますか?

これはそのようなコードの例です(これは私のものではありません)。への呼び出しのuser_search後に例外処理が続きます。

注:Railsは使用していません

begin
@twitter = Twitter.user_search(name)
rescue Twitter::Unauthorized
  puts "Not authorized. Please check the Twitter credentials at the top of the script."
  break

rescue Twitter::BadRequest => e
  puts "Hit rate limit. Continuing scraping at #{e.ratelimit_reset}"
  sleep e.retry_after
  retry

rescue Exception => e
  puts "Something else went wrong:"
  puts e.message
end

質問のタイトルを変更しました。問題は、長い例外処理コードを処理する方法だと思います。コード例では、twitter API への複数の呼び出しとそれに続く例外処理があると仮定しています。例外処理コードが、実際の作業を行うコードの読み取りを妨害しているように見えます。

4

1 に答える 1

1

ブロックの最初の行が失敗した場合に、ブロックの最後の行まですべてのコードをスキップできるように、コードのチャンクの周りに例外ハンドラーを記述します。

ハンドラーが表示される残りのメソッド全体が例外によって無効になる場合は、例外を次のレイヤーにバブルアップさせることを検討してください。必ずしもすべてをメソッドでキャッチする必要はありませ

多くの場合、1 行のコード (適切な回復コードを含む) の周りに例外ハンドラーを記述していますが、それは規則ではありません。

于 2013-11-01T02:57:11.080 に答える