You need to provide enough info so that we can replicate the problem
on this side. You didn't completely specify the target. Is this 32
bit? 64 bit? Linux? Embedded ELF? FreeBSD? You didn't specify
which compiler. FSF GCC 8? FSF GCC 7.3? riscv-gnu-toolchain? You
didn't include source or disassembly. It isn't clear what you mean by
the disassembly showing that the catch part was ignored. It isn't
clear if your testcase is OK. Did you try it with other compilers,
such as an x86_64-linux compiler? You didn't specify the source
language, I'm guessing C++. Lacking details, I can only provide very
general answers.
There are C++ testcases in the gcc testsuite that use exceptions.
They work. There are Fedora/Debian/OpenSuse/etc builds progressing
nicely, building thousands of packages, some of which use exceptions.
They work.
There is one recently reported problem with 64-bit linux exceptions
failing when there is no catch and the default terminate is supposed
to be called. This is a glibc bug, _start fails to terminate the
stack unwind chain. There is a trivial patch for it. I have seen a
number of problems with 32-bit linux stack unwinding, but 32-bit linux
in general is broken, so that is no surprise. It is believed that the
exception handler stack frame changed at some point, and the
corresponding stack unwind fix hasn't made it way back into gcc yet.
Jim