一、throw关键字 点击此处返回总目录 二、throws关键字 三、自己写方法抛出异常 四、举例 一、throw关键字 关键字throw,用于在方法的内部抛出异常。 throw抛出的是异常的对象。throw后面,必须写 new 对象(Exception或Exception的子类对象)。 二、throws关键字 throws关键字标明此方法可能会出现哪些异常,请调用者处理。 throws关键字是方法中声明异常的关键字。用于在方法的声明上,标明此方法可能会出现哪些异常,请调用者处理。 三、自己写方法抛出异常 我们可以自己编写方法往外抛异常。 规则和原则如下: 1. 当方法内可能抛出编译异常时(可以是我们使用throw手动抛出,也可以是JVM抛出),必须要写throws声明。【例1】 2. 如果方法内可能抛出编译异常,但是声明上没有写throws,则程序报错。【例2】【例3】 3. 如果方法内抛出了运行异常(可以是我们使用throw手动抛出,也可以是JVM抛出),不需要写throws声明。(在API文档中,带有throws的方法,抛出的异常都是编译异常。所以自己写方法的时候也尽量满足:编译异常写throws,运行异常不写throws)。 例1:
例2:
运行结果: Exception in thread "main" java.lang.Error: Unresolved compilation problem: at cn.itcast.demo05.Test.fun(Test.java:13) 例3:用throw抛出了编译异常,但是没有使用throws,则程序报错。
运行结果: Exception in thread "main" java.lang.Error: Unresolved compilation problem: at cn.itcast.demo03.Test.fun(Test.java:11) 四、举例 编写一个方法,输入圆的半径r,输出圆的面积。 分析:当输入的是负数的时候,是异常。虽然能计算Pai*r*r,但是参数违反了真实情况,后面没有什么意义了,应该停止程序,不要计算了。所以应该定义一个运行时异常。这个地方抛出编译异常不合适,因为就不能让调用者处理。 调用者调用我们定义的函数fun()的时候,并不知道里面会抛出运行时异常,也就不会做任何异常方面的处理。当调用了fun(-3)时,程序停了,报了"半径为负"的错误,才发现:"奥,原来是我传了个-3,回去改改"。
运行结果: Exception in thread "main" java.lang.RuntimeException: 半径为负 |
||||
异常(4)----通过throw、throws关键字写带有异常的方法
版权声明:未经同意,严禁转载 https://blog.csdn.net/pengchengliu/article/details/82709127
猜你喜欢
转载自blog.csdn.net/pengchengliu/article/details/82709127
今日推荐
周排行