Interface ErrorHandler
- Functional Interface:
- This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.
编辑器错误处理器。
用于自定义错误处理逻辑,如记录日志、发送告警等。
返回值语义
handleError(EditorError) 方法的返回值决定错误的传播行为:
true- 错误已完全处理,停止传播,不会触发EditorErrorEventfalse- 错误未完全处理,继续传播,将触发EditorErrorEvent
使用示例
基础用法 - 记录日志但不阻止传播
editor.setErrorHandler(error -> {
logger.error("CKEditor error [{}]: {}", error.getCode(), error.getMessage());
return false; // 继续传播,允许其他监听器处理
});
条件处理 - 只拦截特定错误
editor.setErrorHandler(error -> {
if ("NETWORK_ERROR".equals(error.getCode())) {
// 网络错误自动重试,不传播给用户
retryService.scheduleRetry();
return true; // 已处理,停止传播
}
return false; // 其他错误继续传播
});
链式处理 - 组合多个处理器
ErrorHandler logger = ErrorHandler.logging(log);
ErrorHandler alerter = error -> {
if (error.getSeverity() == ErrorSeverity.FATAL) {
alertService.sendAlert(error.getMessage());
return true;
}
return false;
};
// 先记录日志,再发送告警
editor.setErrorHandler(ErrorHandler.compose(logger, alerter));
最佳实践
- 日志记录器通常应返回
false,允许其他处理器继续处理 - 只有在错误被完全解决(如自动重试成功)时才返回
true - 对于致命错误 (
FATAL),通常应让其传播以便 UI 能够响应 - 使用
compose(ErrorHandler...)组合多个处理器时,顺序很重要
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionstatic ErrorHandlercompose(ErrorHandler... handlers) 组合多个错误处理器boolean处理编辑器错误。static ErrorHandler创建记录日志的错误处理器
-
Method Details
-
handleError
处理编辑器错误。此方法在
EditorErrorEvent触发之前被调用, 提供了拦截和处理错误的机会。- Parameters:
error- 错误详情,包含错误代码、消息、严重程度等信息- Returns:
true表示错误已处理完毕,停止传播(不触发事件);false表示错误未处理或需要继续传播(触发EditorErrorEvent)
-
logging
-
compose
组合多个错误处理器- Parameters:
handlers- 处理器列表- Returns:
- 组合后的处理器
-