There was an interesting talk about C++ exceptions in smaller firmware at CppCon last year:
https://youtu.be/bY2FlayomlEBasically, the overhead of exceptions is probably less than handling the same errors manually in any non-trivial program.
Also, it's not like these table doesn't exist in other languages. Both Rust and Go have to unwind.