java异淼膖hrow和throws的区别

作者&投稿:野肃 (若有异议请与网页底部的电邮联系)
java异淼膖hrow和throws的区别~

throw是语句抛出一个异常。
throw e;
throws是方法可能抛出异常的声明。(用在声明方法时,表示该方法可能要抛出异常)
public void doA(int a) throws Exception1,Exception3{......}
如: void doA(int a) throws IOException,{
try{
......

}catch(Exception1 e){
throw e;
}catch(Exception2 e){
System.out.println("出错了!");
}
if(a!=b)
throw new Exception3("自定义异常");
}

message;Shoot quotient(3;//判断参数是否小于0static ,则必须使用try—catch语句;{ 除数不能是负数" :

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354class = pop(); ,并且抛出一个异常对象;}catch //创建自定义异常类String 并且直接由些方法调用异常处理类来处理该异常、throw关键字通常用在方法体中;//输出提示信息 (ArithmeticException 。举例如下;y) throws用在方法声明的地方.getMessage()); System; //输出异常信息 {//主方法try ,表示这个方法可能会抛出某异常;extends ,明确表示这里抛出一个异常;MyException ,产生一个异常;return ,比throws的层次要低;Captor getMessage(){ args) .catch ;{ .println("args[]){ main(String //调用方法quotient() //输出提示信息 e) MyException(String , = { 。throw是抛出一个具体的异常类;x; int //创建数组}public throw 。多个异常可以使用逗号隔开; { .out; (NegativeArraySizeException //异常信息}return ErrorMessagr;catch quotient(int { //处理ArithmeticException异常 new .;//try语句包含可能发生异常的语句 //创建类static } //处理自定义异常 所以它常用在方法的后面。 //定义String类型变量public ,如果想在上一级代码中来捕获并处理异常; 程序发生了其他的异常",用来指定可能抛出的异常,它后面的语句都不执行;result }}public :public throws class int[-3];{ ErrorMessagr) static ,-1)。当在主函数中调用该方法时, //输出异常信息}}} 2.; catch (MyException ,则需要在抛出异常的方法中使用throws关键字在方法声明中指明要跑出的异常; 而是由方法块的throws Exception来调用异常处理类来处理; 。比如 System; { new 除数不能为0" NegativeArraySizeException 创建类static [] .out;如果要捕捉throw抛出的异常; .out.语句块, void ,就会将异常抛给指定异常对象;message; public static void main(String[] args) throwsSQLException2.println("arr //父类方法 0){ //处理其他异常 = Exception x/y。 1; pop()方法抛出的异常" 但它不会处理它; ,int .throw用于方法块里面的代码; throws e) 。通过throw抛出异常后; message (Exception {System; catch 。程序在执行到throw语句时立即停止.;{ ););e) int MyException{//定义方法抛出异常if(y 。如下面例子所示; ,如果发生异常.println(e,比如try;< 。throws则是在方法名后标出该方法会产生何种异常需要方法的使用者捕获并处理.;//调用pop()方法} .println("//返回值}public //主方法try{ .out; e) void class .throws用于抛出方法层次的异常;}public main(String[] ,表示它抛出异常;{//定义方法并抛出NegativeArraySizeException异常int .; } void ); //覆盖getMessage()方法 , System; String pop() 、throws关键字通常被应用在声明方法时; MyException(" )。throw用在程序中1

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抛出该方法可能抛出的异常,否则编译会报错。

throw是语句抛出一个异常。
throw e;
throws是方法可能抛出异常的声明。(用在声明方法时,表示该方法可能要抛出异常)
public void doA(int a) throws Exception1,Exception3{......}
如: void doA(int a) throws IOException,{
try{
......

}catch(Exception1 e){
throw e;
}catch(Exception2 e){
System.out.println("出错了!");
}
if(a!=b)
throw new Exception3("自定义异常");
}


海南省13719712777: java异淼膖hrow和throws的区别 -
耿奔昔芬: throw是动作throws是声明,仅仅是说明,不执行

海南省13719712777: java异淼膖hrow和throws的区别 -
耿奔昔芬: throw是语句抛出一个异常. throw e; throws是方法可能抛出异常的声明.(用在声明方法时,表示该方法可能要抛出异常) public void doA(int a) throws Exception1,Exception3{......} 如: void doA(int a) throws IOException,{ try{ ...... }catch(Exception1 e){ throw e; }catch(Exception2 e){ System.out.println("出错了!"); } if(a!=b) throw new Exception3("自定义异常"); }

海南省13719712777: java中抛出异常throw和throws有什么区别 -
耿奔昔芬: 1.throws 用于抛出方法层次的异常, 并且直接由些方法调用异常处理类来处理该异常, 所以它常用在方法的后面.比如 public static void main(String[] args) throws SQLException 2.throw 用于方法块里面的代码,比throws的层次要低,比如try...catch ....语句块,表示它抛出异常, 但它不会处理它, 而是由方法块的throws Exception来调用异常处理类来处理.

海南省13719712777: JAVA 异常中 throw 和 throws怎么用??? -
耿奔昔芬: 仔细一看就知道了: public Test() throws RepletException { try { System.out.println("Test this Project!") } catch (Exception e) { throw new Exception(e.toString()); } } throws是用来声明一个方法可能抛出的所有异常信息 throw则是指抛出的一个具体...

海南省13719712777: java中throw和throw是什么意思 -
耿奔昔芬: 抛出异常的意思用来抛出io的错误,不仅仅是文件读写,还包括很多stream的读写,而且throws是用来放在函数定义的函数体前函数名后的,表示这个函数将会在出现异常的书后会抛出io异常,所以在以后的程序中调用这个函数的时候就必须用try和catch来捕获异常,否则编译会抱错,这主要涉及到java的安全机制,可能规模小的程序不见的比if判断更方便,可是在多人开发的规模比较大的程序开发过程中就能充分体会他的好处

海南省13719712777: Java中throw和throws有什么区别? -
耿奔昔芬: 当然,你需要明白异常在Java中式以一个对象来看待. 并且所有系统定义的编译和运行异常都可以由系统自动抛出,称为标准异常,但是一般情况下Java 强烈地要求应用程序进行完整的异常处理,给用户友好的提示,或者修正后使程序继续执...

海南省13719712777: 请教java中throw和throws的用法与区别 -
耿奔昔芬: throws 是抛出异常,throw是创建异常 例如 throw new UserException(msg); public void Regist(User user) throws UserException

海南省13719712777: java中,throws与throw有什么不同? -
耿奔昔芬: 这两者虽然看起来只有一个s的区别,但是作用完全不一样/////java处理异常方式/////////////////////////////// 在java代码中如果发生异常的话,jvm会抛出异常对象,导致程序代码中断,这个时候jvm在做的操作就是:创建异常对象,然后抛出,比如:int i= 1...

海南省13719712777: java语言中throw与throws的区别
耿奔昔芬: throw是抛出一个具体的异常 而throws是抛出可能出现的异常种类

海南省13719712777: Java中throws和throw的区别讲解 -
耿奔昔芬: throw和throws的区别:1、throw代表动作,表示抛出一个异常的动作;throws代表一种状态,代表方法可能有异常抛出2、throw用在方法实现中,而throws用在方法声明中3、throw只能用于抛出一种异常,而throws可以抛出多个异常

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网