try{
//代码区
}catch(Exception e){
//异常处理
}
代码区如果有错误,就会返回所写异常的处理。
首先要清楚,如果没有try的话,出现异常会导致程序崩溃。
而try则可以保证程序的正常运行下去,比如说:
try{
int i = 1/0;
}catch(Exception e){
........
}
一个计算的话,如果除数为0,则会报错,如果没有try的话,程序直接崩溃。用try的话,则可以让程序运行下去,并且输出为什么出错!
try catch 是捕捉try部分的异常,当你没有trycatch的时候,如果出现异常则程序报错,加上trycatch,出现异常程序正常运行,只是把错误信息存储到Exception里,所以catch是用来提取异常信息的,你可以在Catch部分加上一句System.out.println(e.ToString());,如果出现异常可以把异常打印出来。
注意:
(1)try块和catch块只能整体出现,catch块必须紧跟在try块之后,不能单独使用,中间不能插入其他语句。
(2)try块和catch块不能省略花括号
(3)一个try-catch结构中只能有一个try块,但可以有多个catch块,以便与不同的异常信息匹配,如:
try
{...}
catch(double)
{...}
catch(int)
{...}
catch(char)
{...}
(4)如果在catch子句中没有指定异常信息的类型,而用了删节号“…”,则表示它可以捕捉任何类型的异常信息,如:
catch (...)
{
cout << "catch all err" << endl;
}
它能捕获所有类型的异常信息。
这种catch子句应放在try-catch结构中的最后,相当于“其他”。如果把它作为第一个catch子句,则后面的catch子句都不起作用。
[使用]
try
{...}
catch (const std::exception &e)
{
std::cerr << e.what() << '\n';
}
try {
int result = pide(10, 0);
System.out.println(result);
} catch (Exception e) {
System.out.println("Error: " + e.getMessage());
}