そもそもシグナルハンドラのコンテキストと
gccにおける例外の実装を知らないんでなんとも言えない
んだが、なんとなくできなさそうな気がしててやっぱりできなかった

というわけで次の質問
「シグナルを捕らえて例外として投げるいい方法はないか?」

回答の予想
「longjmp()でも使っとけ」