throw和throws
uncheckException的处理
class User{
private int age;
public void setAge(int age){
if(age < 0){
//生成异常对象
RuntimeException e = new RuntimeException("年龄不能为负数");
throw e; //终止运行,抛出异常对象
}
this.age = age;
}
}
class Test{
public static void main(String args[]){
User u = new User();
u.setAge(-20);
}
}
JVM不能识别的异常,比如年龄为负数,在语法上没有错误但不符合实际,需要靠人为识别异常,生成异常对象,通过throw抛出异常。JVM得到异常对象后则终止代码运行。
checkException的处理
class User{
private int age;
public void setAge(int age){
if(age < 0){
Exception e = new Exception("年龄不能为负数");
throw e;
}
this.age = age;
}
}
捕获:使用try…catch…finally
声明:使用throws
当setAge方法有可能产生checkException时,如Exception类型的异常,在函数后面添加throws声明Exception这样的异常对象,产生异常后由调用setAge方法的地方来处理。
class User{
private int age;
public void setAge(int age) throws Exception{
if(age < 0){
Exception e = new Exception("年龄不能为负数");
throw e;
}
this.age = age;
}
}
再次编译Test.java时提示如下错误:

class Test{
public static void main(String args[]){
User u = new User();
try{
u.setAge(-20);
}
catch(Exception e){
e.printStackTrace();
}
}
}

当在User类中的setAge方法后通过throws声明异常类型后,Test主函数中调用了setAge方法产生了异常并用try…catch进行处理。
总结:
Throw的作用:JVM无法判断的异常,可通过生成异常对象用thorw抛出异常
Throws的作用:用来声明一个函数可能会产生异常,函数不对异常进行处理,调用函数的地方对异常进行处理。
参考:http://dev.yesky.com/61/8111561.shtml#top
throw和throws的更多相关文章
- 浅谈Java的throw与throws
转载:http://blog.csdn.net/luoweifu/article/details/10721543 我进行了一些加工,不是本人原创但比原博主要更完善~ 浅谈Java异常 以前虽然知道一 ...
- java中throw和throws的区别
throw和throws的区别: throws 用在方法声明后面,跟的是异常类名 可以跟多个异常类名,用逗号隔开 表示抛出异常,由该方法的调用者来处理 throws表示出现异常的一种可能性,并不一定会 ...
- throw跟throws关键字
throws关键字 定义一个方法的时候可以使用throws关键字声明.使用throws关键字声明的方法表示此方法不处理异常,而交给方法调用处进行处理. throws关键字格式: public 返回值类 ...
- 再探Java基础——throw与throws
http://blog.csdn.net/luoweifu/article/details/10721543 异常处理机制 异常处理是对可能出现的异常进行处理,以防止程序遇到异常时被卡死,处于一直等待 ...
- Java异常之try,catch,finally,throw,throws
Java异常之try,catch,finally,throw,throws 你能区分异常和错误吗? 我们每天上班,正常情况下可能30分钟就能到达.但是由于车多,人多,道路拥挤,致使我们要花费更多地时间 ...
- Java中的throw和throws的差别
Java中的throw和throws的差别 1.throwkeyword用于方法体内部.而throwskeyword用于方法体部的方法声明部分: 2.throw用来抛出一个Throwable类型的异常 ...
- JAVA 异常 throw 与 throws
最近一直throw和throw new …… 获取头部罢工,要彻底生气清楚这件事,他对这个思想精华收集了很多网友.这里摘录. throws全部异常信息throw则是指抛出的一个详细的异常类型.通常在一 ...
- 【Java学习笔记之三十二】浅谈Java中throw与throws的用法及异常抛出处理机制剖析
异常处理机制 异常处理是对可能出现的异常进行处理,以防止程序遇到异常时被卡死,处于一直等待,或死循环. 异常有两个过程,一个是抛出异常:一个是捕捉异常. 抛出异常 抛出异常有三种形式,一是throw, ...
- Java中的throw和throws的区别
Java中的throw和throws的区别 1.throw关键字用于方法体内部,而throws关键字用于方法体部的方法声明部分: 2.throw用来抛出一个Throwable类型的异常,而throws ...
- JAVA之旅(十)——异常的概述,Try-Catch,异常声明Throws,多异常处理,自定义异常,Throw和Throws的区别
JAVA之旅(十)--异常的概述,Try-Catch,异常声明Throws,多异常处理,自定义异常,Throw和Throws的区别 不知不觉,JAVA之旅这个系列已经更新到第十篇了,感觉如梦如幻,时间 ...
随机推荐
- WinCE下使用C#获得带毫秒的DateTime.Now
在WinCE下,使用DateTime.Now获取的系统时间是不带毫秒的,如果想要它带毫秒,需要耍点手段.话不多说,直接上代码: public static DateTimePrecisely { // ...
- [工具] 如何利用Notepad++去除重复行
问题: 需要去除重复数据, 例如: 解决方案: 1. 打开notepad++: 2. 如果没有找到"TextFx" 选项, 需要先安装该插件. 依次打开"插件" ...
- tip浮动提示框
今天工作中碰到要弹出tip浮动提示框,如服务器控件的ToolTip属性. 通过GOOGLE搜到了一个很好用的tip浮动提示框:TipTip jQuery Plugin. 例子如下: <!DOCT ...
- 【测试】在hr用户下自行创建T1和T2表写一条SQL语句,(NL连接)
SQL> select t1.* from t1,t2 where t1.object_id=t2.object_id; rows selected. Execution Plan ------ ...
- 学习练习 java面向对象封装汽车
package com.hanqi; //汽车 public class Car { // 车牌 private String CheP; // 油箱容量 private double YouXRL ...
- VC与JavaScript交互(二) --- 调用JS函数
这一章,我们来动手实践VC调用JS函数. 我们动手写一个HTML,其中包含这样一段JS代码: //[html] <script type="text/javascript"& ...
- [转]回答--python django学的很迷茫怎么办?
作者:王一链接:http://www.zhihu.com/question/26235428/answer/36568428来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处 ...
- C# 后台请求web服务方法
/// <summary> /// 传输方法 /// </summary> /// <param name ...
- 百度地图API示例之文本标注
代码 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" cont ...
- Recover deleted pictures in iOS 9
A case about business secret. The suspect is an engineer in Hitec company, and compeitiors pay lots ...