异常处理机制
在以异常处理程序元素开始的流程中处理模块中引发的异常。在一个动作中,您可以有多个 Exception Handler 流程来处理不同类型的异常。
异常可以由 OutSystems 或在模块的任何位置的逻辑中引发。对于典型的 UI 请求,您可以通过以下方式处理引发的异常:
- 在您的操作流程中添加异常处理程序元素及其逻辑。
- 在您的 UI 流中添加 On Exception 操作。
- 让模块的全局异常处理程序完成工作。默认情况下,模块的全局异常处理程序属性设置为“通用”UI 流的异常操作。
在以计时器开始的操作流程中,您只能通过在逻辑中添加异常处理程序元素来处理引发的异常,否则,执行流程将被中断并记录错误。
引发异常时,当前执行流程会中断,流程会在处理该类型异常的第一个异常处理程序元素中重新启动。
例如,考虑一个 Action B 引发一个名为 MyUserException 的用户异常。动作 B 由动作 A 调用,这是一个屏幕动作。当 Action B 抛出 MyUserException 时,异常处理机制如下:
您至少应该在您的应用程序流程中有一个异常处理程序来通知并允许最终用户继续导航。
OnApplicationReady是一个特殊的事件处理程序,未包含在全局异常处理程序中。因此,应该在操作本身中实现错误处理。
处理集成引发的异常
当您处理由您正在使用的集成(例如扩展的操作或 REST API 的方法)引发的异常时,您将无法确定异常的类型。在这些情况下,您应该使用 All Exceptions Handler 来处理异常。然后,您可以使用Exception Handler 元素的ExceptionMessage属性来识别异常。
有关处理使用的 REST API 中的错误的更多信息,请查看处理 REST 错误。
试题
题解:CreateOrUpdateClass是属于数据库操作行为,所以在数据库操作行为中抛出异常,便属于数据异常,DatebaseException
题解:如图所示,首位异常是SecurityException,但是在它的执行上下文中并没有响应的Exception Handle,所以该异常会按照冒泡的行为向上查找可以对应的异常处理,只有AllException符合,AllException可以处理所有的异常。