[{"data":1,"prerenderedAt":1018},["ShallowReactive",2],{"navigation":3,"examples-nav":224,"-examples-custom-error-handler":353,"-examples-custom-error-handler-surround":1011},[4,83,208,214,221],{"title":5,"path":6,"stem":7,"children":8,"icon":82},"","/docs","1.docs/1.index",[9,12,17,22,27,32,37,42,47,52,57,62,67,72,77],{"title":10,"path":6,"stem":7,"icon":11},"Introduction","i-lucide-compass",{"title":13,"path":14,"stem":15,"icon":16},"Quick Start","/docs/quick-start","1.docs/2.quick-start","i-lucide-zap",{"title":18,"path":19,"stem":20,"icon":21},"Renderer","/docs/renderer","1.docs/4.renderer","ri:layout-masonry-line",{"title":23,"path":24,"stem":25,"icon":26},"Routing","/docs/routing","1.docs/5.routing","ri:direction-line",{"title":28,"path":29,"stem":30,"icon":31},"Assets","/docs/assets","1.docs/50.assets","ri:image-2-line",{"title":33,"path":34,"stem":35,"icon":36},"Configuration","/docs/configuration","1.docs/50.configuration","ri:settings-3-line",{"title":38,"path":39,"stem":40,"icon":41},"Database","/docs/database","1.docs/50.database","ri:database-2-line",{"title":43,"path":44,"stem":45,"icon":46},"Lifecycle","/docs/lifecycle","1.docs/50.lifecycle","i-lucide-layers",{"title":48,"path":49,"stem":50,"icon":51},"Plugins","/docs/plugins","1.docs/50.plugins","ri:plug-line",{"title":53,"path":54,"stem":55,"icon":56},"Tasks","/docs/tasks","1.docs/50.tasks","codicon:run-all",{"title":58,"path":59,"stem":60,"icon":61},"Server Entry","/docs/server-entry","1.docs/6.server-entry","ri:server-line",{"title":63,"path":64,"stem":65,"icon":66},"Cache","/docs/cache","1.docs/7.cache","ri:speed-line",{"title":68,"path":69,"stem":70,"icon":71},"KV Storage","/docs/storage","1.docs/8.storage","carbon:datastore",{"title":73,"path":74,"stem":75,"icon":76},"Migration Guide","/docs/migration","1.docs/99.migration","ri:arrow-right-up-line",{"title":78,"path":79,"stem":80,"icon":81},"Nightly Channel","/docs/nightly","1.docs/99.nightly","ri:moon-fill","i-lucide-book-open",{"title":84,"path":85,"stem":86,"children":87,"icon":89},"Deploy","/deploy","2.deploy/0.index",[88,90,111],{"title":84,"path":85,"stem":86,"icon":89},"ri:upload-cloud-2-line",{"title":91,"path":92,"stem":93,"children":94,"page":110},"Runtimes","/deploy/runtimes","2.deploy/10.runtimes",[95,100,105],{"title":96,"path":97,"stem":98,"icon":99},"Node.js","/deploy/runtimes/node","2.deploy/10.runtimes/1.node","akar-icons:node-fill",{"title":101,"path":102,"stem":103,"icon":104},"Bun","/deploy/runtimes/bun","2.deploy/10.runtimes/bun","simple-icons:bun",{"title":106,"path":107,"stem":108,"icon":109},"Deno","/deploy/runtimes/deno","2.deploy/10.runtimes/deno","simple-icons:deno",false,{"title":112,"path":113,"stem":114,"children":115,"page":110},"Providers","/deploy/providers","2.deploy/20.providers",[116,120,124,128,132,136,140,144,148,152,156,160,164,168,172,176,180,184,188,192,196,200,204],{"title":117,"path":118,"stem":119},"Alwaysdata","/deploy/providers/alwaysdata","2.deploy/20.providers/alwaysdata",{"title":121,"path":122,"stem":123},"AWS Lambda","/deploy/providers/aws","2.deploy/20.providers/aws",{"title":125,"path":126,"stem":127},"AWS Amplify","/deploy/providers/aws-amplify","2.deploy/20.providers/aws-amplify",{"title":129,"path":130,"stem":131},"Azure","/deploy/providers/azure","2.deploy/20.providers/azure",{"title":133,"path":134,"stem":135},"Cleavr","/deploy/providers/cleavr","2.deploy/20.providers/cleavr",{"title":137,"path":138,"stem":139},"Cloudflare","/deploy/providers/cloudflare","2.deploy/20.providers/cloudflare",{"title":141,"path":142,"stem":143},"Deno Deploy","/deploy/providers/deno-deploy","2.deploy/20.providers/deno-deploy",{"title":145,"path":146,"stem":147},"DigitalOcean","/deploy/providers/digitalocean","2.deploy/20.providers/digitalocean",{"title":149,"path":150,"stem":151},"Firebase","/deploy/providers/firebase","2.deploy/20.providers/firebase",{"title":153,"path":154,"stem":155},"Flightcontrol","/deploy/providers/flightcontrol","2.deploy/20.providers/flightcontrol",{"title":157,"path":158,"stem":159},"Genezio","/deploy/providers/genezio","2.deploy/20.providers/genezio",{"title":161,"path":162,"stem":163},"GitHub Pages","/deploy/providers/github-pages","2.deploy/20.providers/github-pages",{"title":165,"path":166,"stem":167},"GitLab Pages","/deploy/providers/gitlab-pages","2.deploy/20.providers/gitlab-pages",{"title":169,"path":170,"stem":171},"Heroku","/deploy/providers/heroku","2.deploy/20.providers/heroku",{"title":173,"path":174,"stem":175},"IIS","/deploy/providers/iis","2.deploy/20.providers/iis",{"title":177,"path":178,"stem":179},"Koyeb","/deploy/providers/koyeb","2.deploy/20.providers/koyeb",{"title":181,"path":182,"stem":183},"Netlify","/deploy/providers/netlify","2.deploy/20.providers/netlify",{"title":185,"path":186,"stem":187},"Platform.sh","/deploy/providers/platform-sh","2.deploy/20.providers/platform-sh",{"title":189,"path":190,"stem":191},"Render.com","/deploy/providers/render","2.deploy/20.providers/render",{"title":193,"path":194,"stem":195},"StormKit","/deploy/providers/stormkit","2.deploy/20.providers/stormkit",{"title":197,"path":198,"stem":199},"Vercel","/deploy/providers/vercel","2.deploy/20.providers/vercel",{"title":201,"path":202,"stem":203},"Zeabur","/deploy/providers/zeabur","2.deploy/20.providers/zeabur",{"title":205,"path":206,"stem":207},"Zerops","/deploy/providers/zerops","2.deploy/20.providers/zerops",{"title":209,"path":210,"stem":211,"children":212,"icon":36},"Config","/config","3.config/0.index",[213],{"title":209,"path":210,"stem":211,"icon":36},{"title":215,"path":216,"stem":217,"children":218,"icon":220},"Examples","/examples","4.examples/0.index",[219],{"title":215,"path":216,"stem":217,"icon":220},"i-lucide-folder-code",{"title":5,"path":222,"stem":223},"/","index",[225,230,235,239,243,246,251,255,259,263,267,271,275,280,284,287,291,295,299,304,308,313,317,321,325,329,333,337,341,345,349],{"title":226,"description":227,"category":228,"path":229},"API Routes","File-based API routing with HTTP method support and dynamic parameters.","features","/examples/api-routes/readme",{"title":231,"description":232,"category":233,"path":234},"Auto Imports","Automatic imports for utilities and composables.","config","/examples/auto-imports/readme",{"title":236,"description":237,"category":228,"path":238},"Cached Handler","Cache route responses with configurable bypass logic.","/examples/cached-handler/readme",{"title":240,"description":241,"category":228,"path":242},"Custom Error Handler","Customize error responses with a global error handler.","/examples/custom-error-handler/readme",{"title":38,"description":244,"category":228,"path":245},"Built-in database support with SQL template literals.","/examples/database/readme",{"title":247,"description":248,"category":249,"path":250},"Elysia","Integrate Elysia with Nitro using the server entry.","backend frameworks","/examples/elysia/readme",{"title":252,"description":253,"category":249,"path":254},"Express","Integrate Express with Nitro using the server entry.","/examples/express/readme",{"title":256,"description":257,"category":249,"path":258},"Fastify","Integrate Fastify with Nitro using the server entry.","/examples/fastify/readme",{"title":260,"description":261,"category":228,"path":262},"Hello World","Minimal Nitro server using the web standard fetch handler.","/examples/hello-world/readme",{"title":264,"description":265,"category":249,"path":266},"Hono","Integrate Hono with Nitro using the server entry.","/examples/hono/readme",{"title":268,"description":269,"category":233,"path":270},"Import Alias","Custom import aliases for cleaner module paths.","/examples/import-alias/readme",{"title":272,"description":273,"category":228,"path":274},"Middleware","Request middleware for authentication, logging, and request modification.","/examples/middleware/readme",{"title":276,"description":277,"category":278,"path":279},"Mono JSX","Server-side JSX rendering in Nitro with mono-jsx.","server side rendering","/examples/mono-jsx/readme",{"title":281,"description":282,"category":278,"path":283},"Nano JSX","Server-side JSX rendering in Nitro with nano-jsx.","/examples/nano-jsx/readme",{"title":48,"description":285,"category":228,"path":286},"Extend Nitro with custom plugins for hooks and lifecycle events.","/examples/plugins/readme",{"title":288,"description":289,"category":278,"path":290},"Custom Renderer","Build a custom HTML renderer in Nitro with server-side data fetching.","/examples/renderer/readme",{"title":292,"description":293,"category":233,"path":294},"Runtime Config","Environment-aware configuration with runtime access.","/examples/runtime-config/readme",{"title":296,"description":297,"category":228,"path":298},"Server Fetch","Internal server-to-server requests without network overhead.","/examples/server-fetch/readme",{"title":300,"description":301,"category":302,"path":303},"Shiki","Server-side syntax highlighting in Nitro with Shiki.","integrations","/examples/shiki/readme",{"title":305,"description":306,"category":228,"path":307},"Virtual Routes","Define routes programmatically using Nitro's virtual module system.","/examples/virtual-routes/readme",{"title":309,"description":310,"category":311,"path":312},"Vite Nitro Plugin","Use Nitro as a Vite plugin for programmatic configuration.","vite","/examples/vite-nitro-plugin/readme",{"title":314,"description":315,"category":311,"path":316},"Vite RSC","React Server Components with Vite and Nitro.","/examples/vite-rsc/readme",{"title":318,"description":319,"category":278,"path":320},"Vite SSR HTML","Server-side rendering with vanilla HTML, Vite, and Nitro.","/examples/vite-ssr-html/readme",{"title":322,"description":323,"category":278,"path":324},"SSR with Preact","Server-side rendering with Preact in Nitro using Vite.","/examples/vite-ssr-preact/readme",{"title":326,"description":327,"category":278,"path":328},"SSR with React","Server-side rendering with React in Nitro using Vite.","/examples/vite-ssr-react/readme",{"title":330,"description":331,"category":278,"path":332},"SSR with SolidJS","Server-side rendering with SolidJS in Nitro using Vite.","/examples/vite-ssr-solid/readme",{"title":334,"description":335,"category":278,"path":336},"SSR with TanStack Router","Client-side routing with TanStack Router in Nitro using Vite.","/examples/vite-ssr-tsr-react/readme",{"title":338,"description":339,"category":278,"path":340},"SSR with TanStack Start","Full-stack React with TanStack Start in Nitro using Vite.","/examples/vite-ssr-tss-react/readme",{"title":342,"description":343,"category":278,"path":344},"SSR with Vue Router","Server-side rendering with Vue Router in Nitro using Vite.","/examples/vite-ssr-vue-router/readme",{"title":346,"description":347,"category":311,"path":348},"Vite + tRPC","End-to-end typesafe APIs with tRPC in Nitro using Vite.","/examples/vite-trpc/readme",{"title":350,"description":351,"category":228,"path":352},"WebSocket","Real-time bidirectional communication with WebSocket support.","/examples/websocket/readme",{"id":354,"title":240,"body":355,"category":228,"description":241,"extension":1004,"icon":1005,"meta":1006,"navigation":1007,"path":242,"seo":1008,"stem":1009,"__hash__":1010},"examples/examples/custom-error-handler/README.md",{"type":356,"value":357,"toc":999},"minimark",[358,806,810,815,821,913,916,920,923,979,982,986,995],[359,360,363,512,572,661,728,752],"code-tree",{":expand-all":361,"default-value":362,"expand-all":5},"true","error.ts",[364,365,369],"pre",{"className":366,"code":367,"filename":362,"language":368,"meta":5,"style":5},"language-ts shiki shiki-themes github-light github-dark github-dark","import { defineErrorHandler } from \"nitro\";\n\nexport default defineErrorHandler((error, _event) => {\n  return new Response(`Custom Error Handler: ${error.message}`, {\n    status: 500,\n    headers: { \"Content-Type\": \"text/plain\" },\n  });\n});\n","ts",[370,371,372,395,402,437,469,482,500,506],"code",{"__ignoreMap":5},[373,374,377,381,385,388,392],"span",{"class":375,"line":376},"line",1,[373,378,380],{"class":379},"so5gQ","import",[373,382,384],{"class":383},"slsVL"," { defineErrorHandler } ",[373,386,387],{"class":379},"from",[373,389,391],{"class":390},"sfrk1"," \"nitro\"",[373,393,394],{"class":383},";\n",[373,396,398],{"class":375,"line":397},2,[373,399,401],{"emptyLinePlaceholder":400},true,"\n",[373,403,405,408,411,415,418,422,425,428,431,434],{"class":375,"line":404},3,[373,406,407],{"class":379},"export",[373,409,410],{"class":379}," default",[373,412,414],{"class":413},"shcOC"," defineErrorHandler",[373,416,417],{"class":383},"((",[373,419,421],{"class":420},"sQHwn","error",[373,423,424],{"class":383},", ",[373,426,427],{"class":420},"_event",[373,429,430],{"class":383},") ",[373,432,433],{"class":379},"=>",[373,435,436],{"class":383}," {\n",[373,438,440,443,446,449,452,455,457,460,463,466],{"class":375,"line":439},4,[373,441,442],{"class":379},"  return",[373,444,445],{"class":379}," new",[373,447,448],{"class":413}," Response",[373,450,451],{"class":383},"(",[373,453,454],{"class":390},"`Custom Error Handler: ${",[373,456,421],{"class":383},[373,458,459],{"class":390},".",[373,461,462],{"class":383},"message",[373,464,465],{"class":390},"}`",[373,467,468],{"class":383},", {\n",[373,470,472,475,479],{"class":375,"line":471},5,[373,473,474],{"class":383},"    status: ",[373,476,478],{"class":477},"suiK_","500",[373,480,481],{"class":383},",\n",[373,483,485,488,491,494,497],{"class":375,"line":484},6,[373,486,487],{"class":383},"    headers: { ",[373,489,490],{"class":390},"\"Content-Type\"",[373,492,493],{"class":383},": ",[373,495,496],{"class":390},"\"text/plain\"",[373,498,499],{"class":383}," },\n",[373,501,503],{"class":375,"line":502},7,[373,504,505],{"class":383},"  });\n",[373,507,509],{"class":375,"line":508},8,[373,510,511],{"class":383},"});\n",[364,513,516],{"className":366,"code":514,"filename":515,"language":368,"meta":5,"style":5},"import { defineConfig } from \"nitro\";\n// import errorHandler from \"./error\";\n\nexport default defineConfig({\n  errorHandler: \"./error.ts\",\n  // devErrorHandler: errorHandler,\n});\n","nitro.config.ts",[370,517,518,531,537,541,553,563,568],{"__ignoreMap":5},[373,519,520,522,525,527,529],{"class":375,"line":376},[373,521,380],{"class":379},[373,523,524],{"class":383}," { defineConfig } ",[373,526,387],{"class":379},[373,528,391],{"class":390},[373,530,394],{"class":383},[373,532,533],{"class":375,"line":397},[373,534,536],{"class":535},"sCsY4","// import errorHandler from \"./error\";\n",[373,538,539],{"class":375,"line":404},[373,540,401],{"emptyLinePlaceholder":400},[373,542,543,545,547,550],{"class":375,"line":439},[373,544,407],{"class":379},[373,546,410],{"class":379},[373,548,549],{"class":413}," defineConfig",[373,551,552],{"class":383},"({\n",[373,554,555,558,561],{"class":375,"line":471},[373,556,557],{"class":383},"  errorHandler: ",[373,559,560],{"class":390},"\"./error.ts\"",[373,562,481],{"class":383},[373,564,565],{"class":375,"line":484},[373,566,567],{"class":535},"  // devErrorHandler: errorHandler,\n",[373,569,570],{"class":375,"line":502},[373,571,511],{"class":383},[364,573,578],{"className":574,"code":575,"filename":576,"language":577,"meta":5,"style":5},"language-json shiki shiki-themes github-light github-dark github-dark","{\n  \"type\": \"module\",\n  \"scripts\": {\n    \"dev\": \"nitro dev\",\n    \"build\": \"nitro build\"\n  },\n  \"devDependencies\": {\n    \"nitro\": \"latest\"\n  }\n}\n","package.json","json",[370,579,580,585,597,605,617,627,632,639,649,655],{"__ignoreMap":5},[373,581,582],{"class":375,"line":376},[373,583,584],{"class":383},"{\n",[373,586,587,590,592,595],{"class":375,"line":397},[373,588,589],{"class":477},"  \"type\"",[373,591,493],{"class":383},[373,593,594],{"class":390},"\"module\"",[373,596,481],{"class":383},[373,598,599,602],{"class":375,"line":404},[373,600,601],{"class":477},"  \"scripts\"",[373,603,604],{"class":383},": {\n",[373,606,607,610,612,615],{"class":375,"line":439},[373,608,609],{"class":477},"    \"dev\"",[373,611,493],{"class":383},[373,613,614],{"class":390},"\"nitro dev\"",[373,616,481],{"class":383},[373,618,619,622,624],{"class":375,"line":471},[373,620,621],{"class":477},"    \"build\"",[373,623,493],{"class":383},[373,625,626],{"class":390},"\"nitro build\"\n",[373,628,629],{"class":375,"line":484},[373,630,631],{"class":383},"  },\n",[373,633,634,637],{"class":375,"line":502},[373,635,636],{"class":477},"  \"devDependencies\"",[373,638,604],{"class":383},[373,640,641,644,646],{"class":375,"line":508},[373,642,643],{"class":477},"    \"nitro\"",[373,645,493],{"class":383},[373,647,648],{"class":390},"\"latest\"\n",[373,650,652],{"class":375,"line":651},9,[373,653,654],{"class":383},"  }\n",[373,656,658],{"class":375,"line":657},10,[373,659,660],{"class":383},"}\n",[364,662,665],{"className":366,"code":663,"filename":664,"language":368,"meta":5,"style":5},"import { defineHandler, HTTPError } from \"nitro/h3\";\n\nexport default defineHandler(() => {\n  throw new HTTPError(\"Example Error!\", { status: 500 });\n});\n","server.ts",[370,666,667,681,685,701,724],{"__ignoreMap":5},[373,668,669,671,674,676,679],{"class":375,"line":376},[373,670,380],{"class":379},[373,672,673],{"class":383}," { defineHandler, HTTPError } ",[373,675,387],{"class":379},[373,677,678],{"class":390}," \"nitro/h3\"",[373,680,394],{"class":383},[373,682,683],{"class":375,"line":397},[373,684,401],{"emptyLinePlaceholder":400},[373,686,687,689,691,694,697,699],{"class":375,"line":404},[373,688,407],{"class":379},[373,690,410],{"class":379},[373,692,693],{"class":413}," defineHandler",[373,695,696],{"class":383},"(() ",[373,698,433],{"class":379},[373,700,436],{"class":383},[373,702,703,706,708,711,713,716,719,721],{"class":375,"line":439},[373,704,705],{"class":379},"  throw",[373,707,445],{"class":379},[373,709,710],{"class":413}," HTTPError",[373,712,451],{"class":383},[373,714,715],{"class":390},"\"Example Error!\"",[373,717,718],{"class":383},", { status: ",[373,720,478],{"class":477},[373,722,723],{"class":383}," });\n",[373,725,726],{"class":375,"line":471},[373,727,511],{"class":383},[364,729,732],{"className":574,"code":730,"filename":731,"language":577,"meta":5,"style":5},"{\n  \"extends\": \"nitro/tsconfig\"\n}\n","tsconfig.json",[370,733,734,738,748],{"__ignoreMap":5},[373,735,736],{"class":375,"line":376},[373,737,584],{"class":383},[373,739,740,743,745],{"class":375,"line":397},[373,741,742],{"class":477},"  \"extends\"",[373,744,493],{"class":383},[373,746,747],{"class":390},"\"nitro/tsconfig\"\n",[373,749,750],{"class":375,"line":404},[373,751,660],{"class":383},[364,753,756],{"className":366,"code":754,"filename":755,"language":368,"meta":5,"style":5},"import { defineConfig } from \"vite\";\nimport { nitro } from \"nitro/vite\";\n\nexport default defineConfig({ plugins: [nitro()] });\n","vite.config.ts",[370,757,758,771,785,789],{"__ignoreMap":5},[373,759,760,762,764,766,769],{"class":375,"line":376},[373,761,380],{"class":379},[373,763,524],{"class":383},[373,765,387],{"class":379},[373,767,768],{"class":390}," \"vite\"",[373,770,394],{"class":383},[373,772,773,775,778,780,783],{"class":375,"line":397},[373,774,380],{"class":379},[373,776,777],{"class":383}," { nitro } ",[373,779,387],{"class":379},[373,781,782],{"class":390}," \"nitro/vite\"",[373,784,394],{"class":383},[373,786,787],{"class":375,"line":404},[373,788,401],{"emptyLinePlaceholder":400},[373,790,791,793,795,797,800,803],{"class":375,"line":439},[373,792,407],{"class":379},[373,794,410],{"class":379},[373,796,549],{"class":413},[373,798,799],{"class":383},"({ plugins: [",[373,801,802],{"class":413},"nitro",[373,804,805],{"class":383},"()] });\n",[807,808,809],"p",{},"This example shows how to intercept all errors and return a custom response format. When any route throws an error, Nitro calls your error handler instead of returning the default error page.",[811,812,814],"h2",{"id":813},"error-handler","Error Handler",[807,816,817,818,820],{},"Create an ",[370,819,362],{}," file in your project root to define the global error handler:",[364,822,823],{"className":366,"code":367,"filename":362,"language":368,"meta":5,"style":5},[370,824,825,837,841,863,885,893,905,909],{"__ignoreMap":5},[373,826,827,829,831,833,835],{"class":375,"line":376},[373,828,380],{"class":379},[373,830,384],{"class":383},[373,832,387],{"class":379},[373,834,391],{"class":390},[373,836,394],{"class":383},[373,838,839],{"class":375,"line":397},[373,840,401],{"emptyLinePlaceholder":400},[373,842,843,845,847,849,851,853,855,857,859,861],{"class":375,"line":404},[373,844,407],{"class":379},[373,846,410],{"class":379},[373,848,414],{"class":413},[373,850,417],{"class":383},[373,852,421],{"class":420},[373,854,424],{"class":383},[373,856,427],{"class":420},[373,858,430],{"class":383},[373,860,433],{"class":379},[373,862,436],{"class":383},[373,864,865,867,869,871,873,875,877,879,881,883],{"class":375,"line":439},[373,866,442],{"class":379},[373,868,445],{"class":379},[373,870,448],{"class":413},[373,872,451],{"class":383},[373,874,454],{"class":390},[373,876,421],{"class":383},[373,878,459],{"class":390},[373,880,462],{"class":383},[373,882,465],{"class":390},[373,884,468],{"class":383},[373,886,887,889,891],{"class":375,"line":471},[373,888,474],{"class":383},[373,890,478],{"class":477},[373,892,481],{"class":383},[373,894,895,897,899,901,903],{"class":375,"line":484},[373,896,487],{"class":383},[373,898,490],{"class":390},[373,900,493],{"class":383},[373,902,496],{"class":390},[373,904,499],{"class":383},[373,906,907],{"class":375,"line":502},[373,908,505],{"class":383},[373,910,911],{"class":375,"line":508},[373,912,511],{"class":383},[807,914,915],{},"The handler receives the thrown error and the H3 event object. You can use the event to access request details like headers, cookies, or the URL path to customize responses per route.",[811,917,919],{"id":918},"triggering-an-error","Triggering an Error",[807,921,922],{},"The main handler throws an error to demonstrate the custom error handler:",[364,924,925],{"className":366,"code":663,"filename":664,"language":368,"meta":5,"style":5},[370,926,927,939,943,957,975],{"__ignoreMap":5},[373,928,929,931,933,935,937],{"class":375,"line":376},[373,930,380],{"class":379},[373,932,673],{"class":383},[373,934,387],{"class":379},[373,936,678],{"class":390},[373,938,394],{"class":383},[373,940,941],{"class":375,"line":397},[373,942,401],{"emptyLinePlaceholder":400},[373,944,945,947,949,951,953,955],{"class":375,"line":404},[373,946,407],{"class":379},[373,948,410],{"class":379},[373,950,693],{"class":413},[373,952,696],{"class":383},[373,954,433],{"class":379},[373,956,436],{"class":383},[373,958,959,961,963,965,967,969,971,973],{"class":375,"line":439},[373,960,705],{"class":379},[373,962,445],{"class":379},[373,964,710],{"class":413},[373,966,451],{"class":383},[373,968,715],{"class":390},[373,970,718],{"class":383},[373,972,478],{"class":477},[373,974,723],{"class":383},[373,976,977],{"class":375,"line":471},[373,978,511],{"class":383},[807,980,981],{},"When you visit the page, instead of seeing a generic error page, you'll see \"Custom Error Handler: Example Error!\" because the error handler intercepts the thrown error.",[811,983,985],{"id":984},"learn-more","Learn More",[987,988,989],"ul",{},[990,991,992],"li",{},[993,994,58],"a",{"href":59},[996,997,998],"style",{},"html pre.shiki code .so5gQ, html code.shiki .so5gQ{--shiki-light:#D73A49;--shiki-default:#F97583;--shiki-dark:#F97583}html pre.shiki code .slsVL, html code.shiki .slsVL{--shiki-light:#24292E;--shiki-default:#E1E4E8;--shiki-dark:#E1E4E8}html pre.shiki code .sfrk1, html code.shiki .sfrk1{--shiki-light:#032F62;--shiki-default:#9ECBFF;--shiki-dark:#9ECBFF}html pre.shiki code .shcOC, html code.shiki .shcOC{--shiki-light:#6F42C1;--shiki-default:#B392F0;--shiki-dark:#B392F0}html pre.shiki code .sQHwn, html code.shiki .sQHwn{--shiki-light:#E36209;--shiki-default:#FFAB70;--shiki-dark:#FFAB70}html pre.shiki code .suiK_, html code.shiki .suiK_{--shiki-light:#005CC5;--shiki-default:#79B8FF;--shiki-dark:#79B8FF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sCsY4, html code.shiki .sCsY4{--shiki-light:#6A737D;--shiki-default:#6A737D;--shiki-dark:#6A737D}",{"title":5,"searchDepth":397,"depth":397,"links":1000},[1001,1002,1003],{"id":813,"depth":397,"text":814},{"id":918,"depth":397,"text":919},{"id":984,"depth":397,"text":985},"md","i-lucide-alert-circle",{"automd":400},{},{"title":240,"description":241},"examples/custom-error-handler/README","dPeuIRI3x5vUweV99Ye-0bAobhDmZTpUAMopB5Ry7cE",[1012,1015],{"title":236,"path":1013,"stem":1014,"description":237,"children":-1},"/examples/cached-handler","examples/cached-handler/README",{"title":38,"path":1016,"stem":1017,"description":244,"children":-1},"/examples/database","examples/database/README",1773050453361]