类型安全的错误层级、全局处理器、跨边界错误映射。
import { NotFoundError, ValidationError } from '@kissjs/core';
// 在 API 路由处理器中
app.get('/api/posts/:id', async (c) => {
const post = await findPost(c.req.param('id'));
if (!post) throw new NotFoundError('Post not found');
const { title } = await c.req.json();
if (!title) throw new ValidationError('Title is required');
return c.json(post);
})KISS 提供 renderSsrError(),支持开发/生产模式:
| 模式 | 行为 |
|---|---|
| 开发 | 完整错误消息 + 堆栈跟踪用于调试 |
| 生产 | 安全的通用错误页面——不暴露内部细节 |
| 层级 | 范围 | 策略 |
|---|---|---|
| SSG(构建时) | 构建 → HTML | renderSsrError() 开发/生产模式。错误在构建时发生,不在运行时。 |
| Hydration | 浏览器 → Island | console.warn + 优雅回退 |
| RPC | 客户端 → API | RpcError 带类型化错误映射 |
注意: KISS 中的"SSR"指的是@lit-labs/ssr 的构建时渲染, 不是运行时服务器。错误在 vite build 期间发生,从不在生产环境中。