c++ try catch用法

  • 格式:docx
  • 大小:37.52 KB
  • 文档页数:2

c++ try catch用法

c++的try catch语句提供了我们在异常情况下处理程序例外的强大功能。try catch语句在抓取和处理异常情况时会有所不同。它使在检测程序运行中可能出现的一些异常情况时我们可以处理好它们,而且有条理的进行代码分析,如果发生错误就会停止程序,而不影响其他部分。

Try catch意思是试图捕捉异常,try块中的代码将被评估,如果没有异常,则没有问题。但是如果try块中抛出了异常,那么catch子句就会在捕获到异常的情况下执行。因此,try块的目的是检查是否有任何异常,catch子句的目的是处理任何异常。

一般来说,try catch语句的语法如下所示:

try {

// 需要检查异常的代码

}catch(exception_type1 e){

// 异常处理1

}catch(exception_type2 e){

// 异常处理2

}

try语句中可以检测一个或多个异常,这取决于您想检查的异常类型。但是,这里有两点要注意:try和catch语句必须包含到代码块中,并且异常必须以括号中的相应异常类型作为参数传递。

下面是一个实际的例子,它抛出一个标准的除法错误:

#include

#include

#include

using namespace std;

int main(){

double divident, divisor, quotient;

try{ cout << "Enter divident:";

cin >> divident;

cout << "Enter divisor:";

cin >> divisor;

if(divisor == 0) throw string("Division by zero");

quotient = divident/divisor;

}catch(string &error){

cout << "Error Occured:"<< error << endl;

}

cout << "Quotient:" << quotient<

return 0;

}

此程序抛出字符串异常,表明是因除数为0而发生错误,如果catch块中没有捕获它,程序将立即停止并显示错误消息。

与try catch语句相关的另一个关键概念是异常类型。除了标准的C++异常,还有大量的类型可供使用,如cmath规范提供的异常类型,如invalid_argument、domain_error、length_error和out_of_range,以及从头文件exception包含的几种类型,如underflow_error及overflow_error等。

另外,C++中的异常不仅限于所提供的类型,用户也可以通过定义自定义异常类型并将其用于捕获和处理程序中可能发生的异常。例如,我们可以定义另一个UserException类来处理用户发出的特殊错误。

在使用try catch语句之前,用户必须确定捕获的异常类型和处理的异常方式。这是使用try catch语句的重要组成部分。

总的来说,用try catch语句处理异常可以非常有效地避免程序运行时出现的问题,同时还可以检测和捕获程序中发生的异常,以此种处理方式有助于提高程序的可用性和稳定性。在更复杂的程序中,我们可能需要在预期时可能出现的异常情况下使用try catch语句,非常重要。例如,在文件访问、网络访问和其他数据库操作中等,有时会出现各种异常情况,因此try catch语句的使用就显得尤为重要。