# CException **Repository Path**: crazyhero/CException ## Basic Information - **Project Name**: CException - **Description**: 使用长跳转实现的异常库,参照了《C语言接口与实现 : 创建可重用软件的技术》,实现了多平台的CMAKE方式编译,自行处理系统错误,并可以运用在多线程中(不能使用在协程中)。 - **Primary Language**: C - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2017-02-20 - **Last Updated**: 2024-11-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #CException 1. 可以让C像C++一样抛出捕获异常。 2. 支持系统错误消息打印。 3. 支持多线程使用异常模块。 4. 支持自定义全局的异常,并能抛出或捕获。 5. 支持特殊异常处理,可以越过多个异常栈,直达某个指定的异常处理处。 ```c int test_exception() { TRY { TRY { TRY { TRY { TRY { TRY { SKIP_RAISE(EXCEPT_ASSERT); // RAISE(EXCEPT_ASSERT); } FINALLY { printf("normal stack\n"); } END; } CATCH { printf("normal stack\n"); } END; } CATCH { printf("normal stack\n"); } END; } CATCH { printf("normal stack\n"); } END; } CATCH { printf("normal stack\n"); } END; } CATCH { printf("top stack\n"); } END; return EXIT_SUCCESS; } ```