课时119:throws关键字
摘要:
1.观察 Throws 的使用
2.主方法继续抛出异常
在程序设计中,执行程序的过程中有可能会产生异常,但是如果说明确的告诉使用者,该方法可能会产生何种异常。那么就可以在方法的声明上使用 Throws 关键字,来解决报错问题。
举例说明:电灯使用说明,会告诉使用者非专业人士不要拆开,即可能会产生问题。或者说有一盆炸药,会提醒千万不要点燃,否则后果自负。
01.观察 Throws 的使用
1.1代码应用
MyMath 类,定义 Static Int 类型的 Div方法,不管是否有问题,直接加上 Throws Exception ,声明这个代码执行的时候会产生异常,于是返回 X/Y 结果,加上 Throws 的作用是如果代码产生异常,那就通过 Throws 方法处理,如果没有异常,则正常执行输出结果X/Y。
在JavaDemo类中编写代码
System
.out.println(MyMath.div(
10
,
2
))
;
代码如下:
class MyMath { // 这个代码执行的时候可能会产生异常,如果产生异常调用处处理 public static int div(int x,int y) throws Exception { return x / y ; } } public class JavaDemo{ public static void main(String argsl]) { System.out.println (MyMath.div (10,2)) ; } }
编译之后会报错:未处理的异常错误,必须进行捕获或者声明以便异常抛出。
例子:假设一个部门经理让他的员工去买一份早点,员工走到卖早点的门口被天上掉下来的砖头砸到了,这种事应该谁处理,让买早点的人处理。
程序编译结果:未报告的异常错误 Exception ;必须对其进行捕获或声明以便抛出。
例子:假设这个经理有点事,派手下的员工将这1000万交给王建,这个员工有没有卷款跑的可能,根据这个员工的人品肯定会卷款跑,那么经理假意把员工的家人孩子接到身边来照顾,至少有个防备。
1.2 Throws的主要作用
在这个程序代码中,操作有可能产生异常,必须时刻防止会出现的错误,即使现在的程序还没有报错,代码编译之后正常执行没有报错,如果现在有异常的话,可以直接进行错误的处理。
代码如下:
class MyMath { // 这个代码执行的时候可能会产生异常,如果产生异常调用处处理 public static int div(int x,int y) throws Exception { return x / y ; } } public class JavaDemo{ public static void main(String argsl]) { Try{ System.out.println (MyMath.div (10,2)) ; }catch(Exception e){ //必须时刻防止会出现的错误 e.printStackTrace(); } } }
Throws 的主要作用是可以强制告诉被调用者可能会出现问题,但是可以解决。此时还应该注意一个问题:主方法本身也是一个方法,实际上主方法也可以继续向上抛出异常。
02.主方法继续抛出异常
JVM 处理
代码:
class MyMath { // 这个代码执行的时候可能会产生异常,如果产生异常调用处处理 public static int div(int x,int y) throws Exception { return x / y ; } } public class JavaDemo{ public static void main(String argsl]) throws Exception { System.out.println (MyMath.div (10,2)) ; }
在JavaDemo中直接加上Throws Exception,此时就不需要处理异常。如果主方法抛出异常,就表示此异常就交由 JVM 负责处理。