查看: 453|回复: 0

[C/C++] C++获取程序异常

[复制链接]

0

技术

9

魅力

1

原创

版主

禁止访问

Rank: 7Rank: 7Rank: 7

积分
7680
人气
176
分享
52

最佳新人活跃会员

发表于 2022-8-31 09:00:58 | 显示全部楼层 |阅读模式
本帖最后由 蒟蒻 于 2022-8-31 09:03 编辑

【异常的定义】
所谓异常,并不是类似于IDE报错的异常毕竟程序能被编译出来,说明IDE是没有报错的
这里的异常,通常指的是逻辑异常
例如,我写了一个杀毒软件(当然并没有
当用户点击“日志”,却跳转到了设置界面,这肯定是异常了(IDE肯定不会报错对吧
【抛出异常】
抛出异常,就是当程序出现错误时,抛出异常ID等等
例如,我用HMCL完Minecraft,HMCL提示:
游戏异常退出
ID:114514
退出原因:XXXXX
建议您{做某件事}后重试
内心独白:啊!
使用C++抛出异常的方法如下
[C++] 纯文本查看 复制代码
try{
    throw 1; //异常ID
    throw "RePlayMod" //异常原因
}

但!是!
只抛出异常有用么?
结论是:
当!然!没!用
所以,抛出异常后下一步就是
接收异常
【接收异常】
接收异常使用

catch() //这是个关键字,不是函数哦

当然,在括号中需要填一些东西
还记得抛出的异常ID和异常信息吗,我们只需要像这样就可以接收他们了
[C++] 纯文本查看 复制代码
catch(int errorID){
    printf("异常ID:%d",errorID);
}
catch(char * errorInfo){
    printf("异常原因:%s错误",errorInfo);
}

还有一种特殊情况,那就是
无法判断错误时如何发生的
这是,我们应该怎么办呢?
很简单,只需在前两个catch的基础上,再添加一句catch
[C++] 纯文本查看 复制代码
catch(...){ //在括号里填...,可接收所有错误
    printf("未知错误!");
}

你学废了吗awa


评分

参与人数 1经验 +3 收起 理由
YFSafe + 3 赞一个!

查看全部评分

小菜鸡一枚~
Gitee主页:https://gitee.com/juruoqwq
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表