Raising exceptions or returning error objects in Python
&gt; If you instead raise exceptions, you are immediately forcing the calling code into a special control flow structure, namely the try&#x2F;except dance, which can be inconvenient.<p>I fail to see how a try&#x2F;catch is more inconvenient than a handful of isinstance calls.<p>What happens when you want to add a new error case? With exceptions, the exception will always be thrown. With error objects, you&#x27;re going to fall through a bunch of isinstance checks and continue on with a result object which isn&#x27;t the type you think it is. Then, some time later, youre going to try and reference a field that doesn&#x27;t exist. This is the kind of thing which is a nightmare to debug.<p>I do appreciate the author&#x27;s point that error objects are nice in functional programming languages. But using them in Python because you like using them in fp is not a good justification.