画面が真っ白になり、”There was an error processing …”とだけ表示される

現象

OutSystemsで作成した画面を操作していたところ、画面が真っ白になり、

「There was an error processing your request. Please try again later…」

とだけ表示されたという連絡があった。

Service CenterのMonitoring > Errorには、「Global」Moduleからのエラーが記録されている。

原因

発生した例外を処理する、Handlerが設定されていません。

通常、作成したアプリケーションには、デフォルトでGlobal Exception Handlerが設定されているのですが、何らかの理由で外されてしまった可能性があります。

背景

例外は、発生した場所で処理されなかった場合、呼び出し元Actionをたどっていきます。

例:あるActionで例外が発生し、かつAction内には、発生した例外に対するHandlerがない場合、次に呼び出し元ActionでHandlerを探していきます

最初に処理を開始したAction(Screen Actionなど)でもHandlerが見つからなかった場合、Screen Actionなら、所属するUI FlowのOn Exception ActionでHandlerを探します。

On Exception Actionは、UI Flowを右クリックし、「Add On Exception Action」を選択すると作成できます。

On Exception ActionでもHandlerが見つからなかった場合に、Global Exception Handlerで処理します。普通はここに、All Exceptionに対するHandlerがあって、専用のエラー画面に遷移するなどして対応します。

公式ドキュメントに説明があります:例外処理の仕組み

つまり、エラーを発生させたFlow、On Exception Action内にHandlerがなく、Global Exception Handlerの設定を(None)にするなどして外してしまったため、例外が処理されずに、システムで拾われ、「There was an error processing your request. Please try again later…」の表示に至った、という流れです。

なお、Screen ActionのFlow内でHandleしておくと、Service Centerのログは空欄になります。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする