Hacker Timesnew | past | comments | ask | show | jobs | submitlogin

One school of thoughts is that exception is a non-local goto that might span many levels of calls, and that can be non-trivial to understand. Languages without exception has clear paths of return in a function.


True, but so what. The code I like the best is the code I don't even have to write. Having to write all the intermediary code between where an exception happens and where I'd like to handle it is annoying.

And the "understanding" argument applies to other things, such as using a compiled language instead of assembly or GC instead of manual memory allocation.


That's funny. I don't mind writing code. The code I like the best is the code I don't have to debug.


> I don't mind writing code.

You should mind writing code that the compiler can write for you, which is exactly what you do when you don't have exceptions (you simulate bubbling up the error manually).


>That's funny. I don't mind writing code. The code I like the best is the code I don't have to debug.

The code you don't have to write, you also don't have to debug.

So you SHOULD mind writing code.


The assumption here being that if you do not have exceptions, one must write all the intermediate code. That exceptions are the only way of avoiding this.

While in Go this may be the case, it is not true in general. One could use an error monad to achieve the exact same thing, albeit in a much safer manner.


Sure, and in some next generation language yet to be invented you might not even need the error monad!

But we're talking Go here.




Consider applying for YC's Fall 2026 batch! Applications are open till July 27.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: