rescueでどんなエラーが起きたか表示させる
selenium webdriverのコード実装はデバッグの連続
コードを書いている時にデバッグ作業しまくりますよね。
1 |
require 'debug' |
とかで動きを途中で止めて変数の値を見たり、ブラウザで値が取れるか調べたり。
コード実装時間の半分くらいがデバッグの連続だと思います。
とにかく謎のエラーが多いseleniumです。
エラー処理を回避するbegin~rescue
何かしらエラーが起きた時にそのコードに対してbegin書いておくことで何かしらの処理を行えます。
エラーが起きた時に何かしらの処理を行ってくれるのがrescueですね。
例えば「何らかの処理」を行っている時にエラーが起きた場合に処理をリトライさせたいならrescueの後にretryを書きます。
1 2 3 4 5 |
begin "何らかの処理" rescue retry end |
これで「何らかの処理」でエラーが起きた時に「何らかの処理」をリトライしてくれます。
注意したいのは、何度retryしてもエラーが起きてしまう時はここでループしてしまうので注意。
retryする回数を指定する方法もありますが、別の機会に書くかコメント欄に優しい人が書いてくれるかもしれません。
どんなエラーが起こったかがわかればデバックがしやすい
ただ、このままだとなぜrescue句に入って、どんなエラーが起きていたかはわかりません。
そんな時はこのように書けばターミナルに起きたエラーを表示してくれます。
1 2 3 4 5 6 |
begin "何らかの処理" rescue => e puts e retry end |
これでどんなエラーが起きているのかわかるのでデバックがしやすくなります。
rescueの中にいろいろ書けば更にわかりやすくなりますね。
コメント