<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Error Handling on theflyingcoders</title><link>https://theflyingcoders.dev/tags/error-handling/</link><description>Recent content in Error Handling on theflyingcoders</description><generator>Hugo</generator><language>en-gb</language><lastBuildDate>Tue, 13 Oct 2026 09:00:00 +0100</lastBuildDate><atom:link href="https://theflyingcoders.dev/tags/error-handling/index.xml" rel="self" type="application/rss+xml"/><item><title>A REST error taxonomy: frozen codes and three shapes</title><link>https://theflyingcoders.dev/blog/rest-error-taxonomy/</link><pubDate>Tue, 13 Oct 2026 09:00:00 +0100</pubDate><guid>https://theflyingcoders.dev/blog/rest-error-taxonomy/</guid><description>&lt;p&gt;If your API can return an error in fifty different JSON shapes, your clients handle none of them and everyone ends up parsing a &lt;code&gt;message&lt;/code&gt; string with a regex. So pick a small fixed set of shapes, give every error a stable code, and never let an endpoint invent its own. This is the taxonomy I put on every API, and it is the other half of the &lt;a href="https://theflyingcoders.dev/blog/behaviour-driven-error-handling-lathos/"&gt;lathos post from last time&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Behaviour-driven error handling: lathos and one global handler</title><link>https://theflyingcoders.dev/blog/behaviour-driven-error-handling-lathos/</link><pubDate>Tue, 29 Sep 2026 09:00:00 +0100</pubDate><guid>https://theflyingcoders.dev/blog/behaviour-driven-error-handling-lathos/</guid><description>&lt;p&gt;An error is a not-found because it says it is, not because of what type it happens to be. That one idea is what lets me delete the pile of &lt;code&gt;errors.Is&lt;/code&gt; blocks out of every handler and put the whole HTTP-status decision in a single place. Here is how it hangs together, with the library I use for it, &lt;a href="https://github.com/theflyingcodr/lathos" target="_blank" rel="noopener noreferrer"&gt;lathos&lt;/a&gt;.&lt;/p&gt;</description></item></channel></rss>