C++中的throw语句说明
什么是throw语句
在C++语言中,当程序执行过程中发生异常时,可以使用throw语句将异常对象抛出。throw语句用于在程序执行时控制权转移到异常处理程序。
throw语句的语法
throw语法格式如下:
throw <异常对象>;
其中,异常对象可以是任何类型的表达式或者是表达式的返回值。通常情况下,异常对象应该是异常类的一个实例。
throw语句的使用
在C++中,一般通过try和catch语句块来处理throw语句抛出的异常。当throw语句执行时,程序会在try语句块中寻找一个对应的异常处理程序。如果找到了对应的异常处理程序,则程序会跳转到该处理程序所在的代码块,执行该代码块中的语句;否则,程序会先执行中间的catch语句块,如果catch语句块中依然没有找到对应的异常处理程序则会向上传递异常,一直到程序的调用者处理异常。
#include <iostream>
using namespace std;
void func(int a, int b) {
if (b == 0){
throw runtime_error("除数不能为0!"); //抛出异常,抛出的异常是runtime_error类型的一个实例
}
else
{
cout << "a/b=" << a / b << endl; //不抛出异常,执行
}
}
int main()
{
try {
func(10, 0);
}
catch (const exception& e) {
cout << "发生异常:" << e.what() << endl; //捕获异常,并输出异常信息
}
return 0;
}
在上述示例代码中,func函数接收两个整数参数a和b,如果b为0,则抛出一个runtime_error类型的异常。在main函数中,通过调用函数func并使用try-catch代码块捕捉代码块抛出的异常,如果发生异常,则会执行catch语句块中的代码,输出异常信息。
#include <iostream>
using namespace std;
int divide(int a, int b) {
if (b == 0){
throw - 1; //抛出异常,抛出的异常是一个int类型的值
}
else
{
return a / b; //不抛出异常,执行
}
}
int main() {
int x = 100, y = 0, z;
try {
z = divide(x, y);
cout << "z=" << z << endl;
}
catch (int e) {
cout << "发生异常,错误码=" << e << endl; //捕获异常,并输出错误码
}
return 0;
}
在上述示例代码中,divide函数接收两个整数参数a和b,如果b为0,则抛出一个整数类型的异常,值为-1。在main函数中,通过调用函数divide并使用try-catch代码块捕捉代码块抛出的异常,如果发生异常,则会执行catch语句块中的代码,输出错误码。
总结
异常处理技术可以使程序更加健壮,增加程序的容错性。通过使用C++中的throw语句和catch语句,程序可以更好地处理异常情况,避免程序因为异常而崩溃。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C++中的throw语句是什么? - Python技术站