zlacker

[parent] [thread] 2 comments
1. dureui+(OP)[view] [source] 2022-10-02 17:58:15
But panics in rust are pretty much exceptions though?

The differences are they are actually meant to be used for exceptional situations ("assert violated => there's a bug in this program" or "out of memory, catastrophic runtime situation") and they are not typed (rather, the panic holds a type erased payload).

Other than that, it performs unwinding without UB, and is catchable[0]. I'm not seeing the technical difference?

[0]: https://doc.rust-lang.org/std/panic/fn.catch_unwind.html

replies(1): >>layer8+t2
2. layer8+t2[view] [source] 2022-10-02 18:13:46
>>dureui+(OP)
You’re probably right now that I’ve read up on it, I wasn’t previously aware of catch_unwind.
replies(1): >>dureui+m3
◧◩
3. dureui+m3[view] [source] [discussion] 2022-10-02 18:18:57
>>layer8+t2
Glad to be of service. Note that the idiomatic error handling in rust is still Result based rather than panic/catch_unwind based.

Nevertheless a long living application like, e.g., a webserver will catch panics coming from its subtasks (e.g., its request handlers) via catch_unwind

[go to top]