エラー時に特定の処理を行わせる方法
投稿日: 2021年07月02日
OS: macOS Big Sur 11.4
バージョン: RapidMiner 9.9.2
プロセスを作成するときに、本来エラーが発生するようなプロセスの時に特定のプロセスを強制的に動かすことがあります。
このような時に、Handle Exceptionというオペレータを使用することで、RapidMinerのプロセス実行中のエラー時に特定のプロセスを実行させることが可能になります。
Handle Exceptionの使い方
Handle ExceptionはサブプロセスとしてTryとCatchを持つオペレータです。Handle Exceptionオペレータが実行されたときに、Try側のプロセスを実行します。ですが、Try側のプロセスの実行中に何らかのエラーが発生した場合、それまでのTryの処理をストップして、Catch側のプロセスを実行します。
この仕組みを使うことで、エラーが発生しても、そのエラーによって動作が止まることを防いだり、エラーが発生した時に実行する特別な処理を定義することができます。
以下にHandle Exceptionの例を示します。
これは、Handle Exceptionオペレータ内部でデータの読み込みを行い、そのまま出力するというシンプルなモデルになります。そしてHandle Exceptionオペレータ内に、Throw Exceptionというオペレータがあります。これはエラーを意図的に発生させることができるオペレータになります。今回は例として、このThrow Exceptionの有効/無効を切り替えることで、Try側のプロセスでエラーを意図的に発生させます。
Throw Exceptionが無効の状態で実行すると、エラーが発生しないため、Try側のデータを読み込み、出力します。読み込まれたのは、Try側のIrisデータでした。
また、Throw Exceptionが有効の時に実行をすると、Tryの実行にThrow Exceptionによってエラーが発生します。これにより、Tryでの実行が中断されて、Catchのプロセスが実行されます。読み込まれたのは、Try側のIrisのデータではなく、Catch側にあるTitanicデータでした。