try...catch语法
1 try{ 2 //代码区 3 }catch(Exception e){ 4 //异常处理 5 }
用途:当try里代码区出现报错异常时(try里必须有代码),执行catch里的异常处理。
如果try里没有代码,或者没有try,出现异常会导致程序崩溃。
该语法,一般用于字符串处理,可以处理格式错误所导致的异常和报错。
例如:
1 try { 2 if (str.equals("")) { // empty string 3 System.out.println("WRONG FORMAT!"); 4 } else { 5 polynomial.Poly(str); //polunomial为自己定义的对象 6 } 7 } catch (Exception e) { 8 System.out.println("WRONG FORMAT!"); 9 }
还有常有的除以“0”出现的错误,数组越界等,try...catch捕捉了try代码里的异常,加强程序的鲁棒性;当你没有try...catch的时候,如果出现异常则程序报错,加上try...catch,出现异常程序正常运行,只是把错误信息存储到Exception里,然后执行catch里的代码。所以catch是用来提取异常信息的,你可以在catch部分加上一句System.out.println(e.ToString());,如果出现异常可以把异常打印出来。
补充:除了这两个关键字,Java里还有finally语句,Throw、Throws语句,可以用来做抛出更多例外的错误信息。
try、catch、finally用法总结:
1、不管有没有异常,finally中的代码都会执行
2、当try、catch中有return时,finally中的代码依然会继续执行
3、finally是在return后面的表达式运算之后执行的,此时并没有返回运算之后的值,而是把值保存起来,不管finally对该值做任何的改变,返回的值都不会改变,依然返回保存起来的值。也就是说方法的返回值是在finally运算之前就确定了的。
4、finally代码中最好不要包含return,程序会提前退出,也就是说返回的值不是try或catch中的值