**Is your feature request related to a problem? Please describe.** my project is compiled with `-fno-exception`. and `throw` is forbidden with `-fno-exception` **Describe the solution you'd like** maybe we can make a macro protect