質問
スクリプト呼び出しを行う親スクリプト、および呼び出される子スクリプトにて[例外監視]処理がある場合で、子スクリプトの処理が失敗したときにそれぞれどのような処理になるか教えてください。
回答
以下4パターンそれぞれで回答します。なお、前提条件は次のとおりです。
- エラーは子スクリプトで発生するものとする。
- 親スクリプトに[例外監視]処理がある場合は、親スクリプトのtryフロー内に[スクリプト呼び出し]処理が配置されているものとする。
- 子スクリプトに[例外監視]がある場合、エラー発生個所はtryフローの内側とする。
①親スクリプト、子スクリプトそれぞれに[例外監視]がある
子スクリプトのtryフローでエラーが発生した場合、子スクリプトのcatchフロー処理を実行したのち、親スクリプトのtryフロー処理を継続します。
子スクリプトのcatchフロー内でもエラーが発生した場合には、親スクリプトのcatchフロー処理を行います。
②親スクリプトにのみ[例外監視]がある
子スクリプトが失敗した場合、親スクリプトのcatchフロー処理を行います。
③子スクリプトにのみ[例外監視]がある
子スクリプトのcatchフロー処理を実行したのち、親スクリプトの処理を継続します。
子スクリプトのcatchフロー内でもエラーが発生した場合には、親スクリプトもエラーとして処理を終了します。
④親スクリプト、子スクリプトともに[例外監視]がない
子スクリプトでエラーが発生した場合には、親スクリプトもエラーとして処理を終了します。
補足
catchフローが[例外通知]処理で終わっている場合、スクリプトは異常終了の扱いとなります。
このため、「①親スクリプト、子スクリプトそれぞれに[例外監視]がある」や「③子スクリプトにのみ[例外監視]がある」の例にて、子スクリプトのcatchが[例外通知]処理で終わっている場合、catchフロー内でエラーが発生したときと同様の挙動となります。
コメント
0件のコメント
記事コメントは受け付けていません。