throw和throws的区别

1.throw:(针对对象的做法)抛出一个异常,可以是系统定义的,也可以是自己定义的。下面举两个例子:抛出Java中的一个系统异常:public class One {public void yichang(){NumberFormatException e = new NumberFormatException();throw e;}public static void main(String[] args){One test = new One();try{test.yichang();}catch(NumberFormatException e){System.out.println(e.getMessage());}}}抛出一个自定义的异常:

public class People {public static int check(String strage) throws MyException{int age = Integer.parseInt(strage);if(age < 0){throw new MyException("年龄不能为负数!");}return age;}public static void main(String[] args){try{int myage = check("-101");System.out.println(myage);}catch(NumberFormatException e){System.out.println("数据格式错误");System.out.println("原因:" + e.getMessage());}catch(MyException e){System.out.println("数据逻辑错误");System.out.println("原因:" + e.getMessage());}}}public class MyException extends Exception{private static final long serialVersionUID = 1L;private String name;public MyException(String name){this.name = name;}public String getMessage(){return this.name;}}2.throws:(针对一个方法抛出的异常)抛出一个异常,可以是系统定义的,也可以是自己定义的。抛出java中的一个系统异常:public class One {public void yichang() throws NumberFormatException{int a = Integer.parseInt("10L");}public static void main(String[] args){One test = new One();try{test.yichang();}catch(NumberFormatException e){System.out.println(e.getMessage());}}}抛出一个自定义异常:public class People {public static int check(String strage) throws MyException{int age = Integer.parseInt(strage);if(age < 0){throw new MyException("年龄不能为负数!");}return age;}public static void main(String[] args){try{int myage = check("-101");System.out.println(myage);}catch(NumberFormatException e){System.out.println("数据格式错误");System.out.println("原因:" + e.getMessage());}catch(MyException e){System.out.println("数据逻辑错误");System.out.println("原因:" + e.getMessage());}}}public class MyException extends Exception{private static final long serialVersionUID = 1L;private String name;public MyException(String name){this.name = name;}public String getMessage(){return this.name;}}3.那么下面我要说究竟什么时候用哪种: 如果是系统异常的话可以什么都不用做,也可以针对方法抛出一个异常,因为系统异常是可以被系统自动捕获的,所以这个异常究竟是要在方法内部解决还是交给上层函数去解决其实效果是一样的。但是我查了很多资料,即使会抛出异常能被系统所捕获的话还是建议针对方法写一个throws,因为这样在完成一个大型任务的时候可以让别的程序员知道这里会出现什么异常。如果是自己定义的异常,则必须要用throws抛出该方法可能抛出的异常,否则编译会报错。4.注意:文章源自http://blog.chinaunix.net/uid-26359455-id-3130427.html
时间: 2024-08-07 04:31:11

throw和throws的区别的相关文章

Java中的throw和throws的区别

Java中的throw和throws的区别 1.throw关键字用于方法体内部,而throws关键字用于方法体部的方法声明部分: 2.throw用来抛出一个Throwable类型的异常,而throws用来声明方法可能会抛出某些异常 Java中的throw和throws的区别,布布扣,bubuko.com

JAVA之旅(十)——异常的概述,Try-Catch,异常声明Throws,多异常处理,自定义异常,Throw和Throws的区别

JAVA之旅(十)--异常的概述,Try-Catch,异常声明Throws,多异常处理,自定义异常,Throw和Throws的区别 不知不觉,JAVA之旅这个系列已经更新到第十篇了,感觉如梦如幻,时间过得很快,转眼一个月就这样过去了,我们不多说,继续我们的JAVA之旅 一.异常的概述 异常算是程序中一个比较重要的环节了,我们首先来看一下异常的体系,我们举一个小例子,定义一个除法方法 //公共的 类 类名 public class HelloJJAVA { // 公共的 静态 无返回值 main方

java 19 - 7 throw和throws的区别

1 /* 2 throw:如果出现了异常情况,我们可以把该异常抛出,这个时候的抛出的应该是异常的对象. 3 4 throws和throw的区别(面试题) 5 throws 6 用在方法声明后面,跟的是异常类名 7 可以跟多个异常类名,用逗号隔开 8 表示抛出异常,由该方法的调用者来处理 9 throws表示出现异常的一种可能性,并不一定会发生这些异常 10 throw 11 用在方法体内,跟的是异常对象名 12 只能抛出一个异常对象名 13 表示抛出异常,由方法体内的语句处理 14 throw则

异常机制及throw与throws的区别

Java的异常处理: Java的异常处理是通过5个关键字来实现的:try,catch,throw,throws,finally.Java的在线帮     助中对这几个关键字是这样解释的: Throws: Lists the exceptions a method could throw. Throws:列出一个方法可抛出的异常.       Throw: Transfers control of the method to the exception handler. Throw:将方法的控制权

throw和throws的区别和联系

突然发现今天诗兴大发,看来又得写点内容了. throw和throws对于Java程序员而言它们真的不是很陌生.但对于我这样的选手而言一提到它们的区别和联系就蒙圈了... 为了以后不蒙圈,今天就研究一下吧~~ 如果有不足的地方欢迎批评指正... 1)throws 对于throws关键字而言一般用于抛出编译时的异常,如果某个异常是编译是异常,那么这个异常就需要捕获(try{}catch{}finally{}) 或者抛出(throws).否者的话是无法通过编译的. 这里再简单讲讲二者的区别 对于try

java异常处理的throw和throws的区别

1. 区别 throws是用来声明一个方法可能抛出的所有异常信息,throws是将异常声明但是不处理,而是将异常往上传,谁调用我就交给谁处理.而throw则是指抛出的一个具体的异常类型. 2.分别介绍 throws:用于声明异常,例如,如果一个方法里面不想有任何的异常处理,则在没有任何代码进行异常处理的时候,必须对这个方法进行声明有可能产生的所有异常(其实就是,不想自己处理,那就交给别人吧,告诉别人我会出现什么异常,报自己的错,让别人处理去吧). 格式是:方法名(参数)throws 异常类1,异

Java中throw和throws的区别

public Test() throws RepletException { try { System.out.println("Test this Project!") } catch (Exception e) { throw new Exception(e.toString()); } } throws是用来声明一个方法可能抛出的所有异常信息 throw则是指抛出的一个具体的异常类型. 通常在一个方法(类)的声明处通过throws声明方法(类)可能抛出的异常信息,而在方法(类)内

throw与throws的区别

throws语句用在方法声明后面,表示再抛出异常,由该方法的调用者来处理. throw语句用在方法体内,表示抛出异常,由方法体内的语句处理. throws主要是声明这个方法会抛出这种类型的异常,使它的调用者知道要捕获这个异常. throw是具体向外抛异常的动作,所以它是抛出一个异常实例. throws说明你有那个可能,倾向. throw的话,那就是你把那个倾向变成真实的了. 同时:1.throws出现在方法函数头:而throw出现在函数体.2.throws表示出现异常的一种可能性,并不一定会发生

throw和throws的区别?

throw: 表示方法内抛出某种异常对象 如果异常对象是非 RuntimeException 则需要在方法申明时加上该异常的抛出 即需要加上 throws 语句 或者 在方法体内 try catch 处理该异常,否则编译报错 执行到 throw 语句则后面的语句块不再执行 throws: 方法的定义上使用 throws 表示这个方法可能抛出某种异常 需要由方法的调用者进行异常处理 package constxiong.interview; import java.io.IOException;