setjmp and longjmp are jumps, not exceptions. But sure, you can use them as part of an error handling strategy that resembles exceptions. It's lower level though. Similarly, goto isn't the same thing as a function call but you can certainly use it to that end.
Signals are similarly not exceptions, plus don't they vary significantly between POSIX and other platforms? I don't think Windows (for example) supports user space (ie non-cooperative) preemption. I recall that this caused issues for Go because the authors implement their own lightweight threads in user space.