throw直接报错
int main()
{
if (true)
throw std::runtime_error("Error!");
}
runtime_error(或者其他错误类型)是一个类, 必须初始化, 需使用string或者c风格字符串初始化.
throw放try里, catch会接住throw的error
大概就是[catch]-->{[throw]-->[try]}的关系
报完错直接运行下面的
#include <iostream>
#include <stdexcept>
void game()
{
std::cout << "杨雨贤小游戏开始啦!" << std::endl;
try{
int a, b; std::cin >> a >> b;
if (a + b == 24)
std::cout << "逆天" << std::endl;
else if (a + b == 25)
throw std::runtime_error("杨雨贤飞起来了!");
else
throw std::invalid_argument("杨雨贤出错了!");
}
catch (std::runtime_error& RE)
{
std::cout<<RE.what()<<std::endl;
}
catch (std::invalid_argument& IE)
{
std::cout << IE.what() << std::endl;
}
std::cout<<"游戏结束"<<std::endl;
}
int main()
{
game();
}
我们使用第一个错误输入:
可见程序正常运行, 没有终止