[Blue Prism]デバッグ実行時に「例外発生時に一時停止」をONにするとちょっと便利かもっていう話 #blueprism


「例外発生時に一時停止」ってどこにあるの

ここです。

どんなもの

ブレークポイントは便利にお使いになっているかたも多いでしょう。ステージの上で右クリックすると出てくるメニューの中にあって、設定するとステージが赤く囲われるアレです。

ヤバそうなところこのへんかなーって見当をつけた場所にブレークポイントを置いてそこまで実行させておいて、そこからステップ実行して1個ずつ確認するとか、単体テストのときに実行途中で一時的にデータアイテムの値を変えるとか……。そんな感じでお使いであろうアレ。

「例外発生時に一時停止」って、端的に言うと、例外が発生したところの復元ステージを自動でブレークポイントとしてくれるものです。

使ってみた

こんなプロセスを作ってみました。計算ステージ2個だけ。


こうすると2個目の計算ステージのところでInternalで例外になります。Excelでいうところの「#DIV/0!」ってやつですね。
このまま実行するとこうなります。

で、「例外発生時に一時停止」をONにして同じように実行すると
こうなります。例外スローまでいかずにブレークポイントで止まったのと同じ挙動をしてくれる感じ。
赤で示したところにコケたステージ名が出ます。上図の「そのまま実行した」場合と出てるものがちょっと異なっています。

つまり
ヤバそうなところここかなーって見当をつけた場所に1個ずつ手でブレークポイントを設定して、大丈夫そうなところは手でまた1個ずつ外して……みたいな手間をあんまりかけずに、今ここで例外スローされましたよ!っていうのをスムーズに見つけることができる。大きいプロセスで、どこらへんでコケているのか手っ取り早く見つけたいときとかにちょっと便利な機能です。
制御室で実行するときには特に影響がないので、デバッグ実行のときはずーっとONにしておいて損はないです。

補足

6.6のリリースノート の「修正とマイナーな改良」の項に

サブプロセスで処理される例外により、[デバッグ]メニューの[例外発生時に一時停止]オプションが選択されているかどうかに関係なく、プロセスが停止するプロセススタジオの問題が解決されました。

と記載があるので、つまりそれより前のバージョンだとサブプロセスで例外スローされたときにうまく拾ってくれないかもってことなんでしょう。
なので、6.6より後でこの機能を使うのが安心でいいかなあと思います。