diff options
| author | Mistivia <i@mistivia.com> | 2025-06-28 19:54:37 +0800 |
|---|---|---|
| committer | Mistivia <i@mistivia.com> | 2025-06-28 19:54:37 +0800 |
| commit | 9a4f460d6dd476767ea211c879f115e127ee2410 (patch) | |
| tree | 8a7ad58e670065af74c261f51f5f21e9bfec3615 /src/main.c | |
| parent | 0633c6c2797bc9182b2c1888385eac6cb6caed10 (diff) | |
exception & try-catch
Diffstat (limited to 'src/main.c')
| -rw-r--r-- | src/main.c | 6 |
1 files changed, 6 insertions, 0 deletions
@@ -17,6 +17,12 @@ int main(int argc, char **argv) { fprintf(stderr, "Error: %s", Interp_ref(&interp, ret)->str); mainret = -1; goto end; } + if (Interp_ref(&interp, ret)->type == kExceptionSignal) { + const char *exception_str = lisp_to_string(&interp, Interp_ref(&interp, ret)->ret); + fprintf(stderr, "Uncatched exception: %s\n", exception_str); + free((void*)exception_str); + mainret = -1; goto end; + } if (Interp_ref(&interp, ret)->type == kBreakSignal || Interp_ref(&interp, ret)->type == kContinueSignal || Interp_ref(&interp, ret)->type == kReturnSignal) { |
