QR Send

スマホとPCのChrome間で、URLやテキストをQRコード1回のペアリングで送り合える自作Chrome拡張。アカウント不要・無料。

使ってみる →

rescueでどんなエラーが起きたか表示させる

Selenium・自動化

selenium webdriverのコード実装はデバッグの連続

コードを書いている時にデバッグ作業しまくりますよね。

require 'debug'

とかで動きを途中で止めて変数の値を見たり、ブラウザで値が取れるか調べたり。
コード実装時間の半分くらいがデバッグの連続だと思います。
とにかく謎のエラーが多いseleniumです。

エラー処理を回避するbegin~rescue

何かしらエラーが起きた時にそのコードに対してbegin書いておくことで何かしらの処理を行えます。
エラーが起きた時に何かしらの処理を行ってくれるのがrescueですね。
例えば「何らかの処理」を行っている時にエラーが起きた場合に処理をリトライさせたいならrescueの後にretryを書きます。

begin
  "何らかの処理"
rescue
  retry
end

これで「何らかの処理」でエラーが起きた時に「何らかの処理」をリトライしてくれます。
注意したいのは、何度retryしてもエラーが起きてしまう時はここでループしてしまうので注意。
retryする回数を指定する方法もありますが、別の機会に書くかコメント欄に優しい人が書いてくれるかもしれません。

どんなエラーが起こったかがわかればデバックがしやすい

ただ、このままだとなぜrescue句に入って、どんなエラーが起きていたかはわかりません。
そんな時はこのように書けばターミナルに起きたエラーを表示してくれます。

begin
  "何らかの処理"
rescue => e
  puts e
  retry
end

これでどんなエラーが起きているのかわかるのでデバックがしやすくなります。
rescueの中にいろいろ書けば更にわかりやすくなりますね。

コメント

  1. […] rescueでどんなエラーが起きたか表示させる | katsulog […]

タイトルとURLをコピーしました