课时121:异常处理模型
摘要:
1.实现除法计算
2.定义异常处理
前面已经学习了异常处理格式: Try、Catch、Finally、Throws、Throw,现在合起来使用,下面通过一个具体的程序来演示一下。
要求定义一个可以实现除法计算的方法,在这方法之中,开发要求如下:
(1) 在进行数学计算开始与结束的时候,进行信息提示;
(2) 如果在程序之中,在进行计算的过程中,产生了异常,则要交给调用处进行异常处理。
01.实现除法计算
除法计算实现
定义的 Div 方法,打印输出结果。
代码如下:
class MyMath // 异常交给被调用处处理则一定要在方法上使用 public static int div(int x,int y) throws Exception { int temp = 0 ; System.out.println(“***[START] 除法计算开始”); Temp = x/y; System.out.println(“***[END] 除法计算结束。") ; Return temp; } } public class JavaDemo { public static void main(String args[]) { try { System.out.println (MyMath.div(10,2)) ; }catch (Exception e) { e.printstackTrace () } }
代码的基础结构如下,定义一个 MyMath 类,定义 Int 类型的 Div 方法,异常交给被调用处处理,一定要在方法上使用 Throws 方法。在操作开始计算前和结束后输出信息提示。在中间要进行除法计算,先定义 Temp=0,然后 Temp=X/Y;
编译代码,查看程序过程,开始提示信息出现,结束提示信息出现,结果返回没有异常。
02.定义异常处理
2.1代码实现
如果将 Div(10,2)改成Div(10,0),结束提示信息会消失。因此产生报错抛出异常之后,后面的代码将不在执行。如果想继续执行后续代码,可以使用 Try,Catch,Finally 的方法强制执行后续代码。
2.2代码优化结果
增加代码:
try{ temp=x/y ; catch(Exception e){ throw e;//向上抛出异常 } finally { System.out.println(n***[END] 除法计算结束。 ") ;
再次执行结果:
此时提示信息也有,异常抛出功能也具备,代码就已经写好了,整个代码把 Try , Catch , Finally 都用上了,这种编写代码方法以后常用,意味着以后可能是网络资源连接和网络连接关闭,在这样的情况下这种结构是有意义的,但是有个小问题:对于此类的操作可以简化,省略掉 Catch与 Throw 的操作。
此时的异常处理就不是通过 Catch 来处理的,而是通过 Div 方法上的 Throws Exception 来处理的,结果没有区别。
代码如下:
class MyMath // 异常交给被调用处处理则一定要在方法上使用 public static int div(int x,int y) throws Exception { int temp = 0 ; System.out.println(“***[START] 网络资源连接”); try{ Temp = x/y; }finally{ System.out.println(“***[END] 网络连接关闭。") ; } Return temp; } }
再次编译执行结果:结果一样
在以后实际开发过程之中,这种异常的处理格式是最为重要的,尤其是当与一些资源进行访问操作的时候尤其重要。