本文目录一览:
- 1、Java中throws和throw的区别讲解
- 2、在java中,throw与throws有什么区别
- 3、Java中throw有什么用处?
- 4、JAVA的throw和throws怎么用!
- 5、java中的throw到底有什么用?
Java中throws和throw的区别讲解
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抛出该方法可能抛出的异常,否则编译会报错。
在java中,throw与throws有什么区别
1、throw是在代码块内的,即在捕获方法内的异常并抛出时用的;
2、throws是针对方法的,即将方法的异常信息抛出去
3、可以理解为throw是主动(在方法内容里我们是主动捕获并throw的),而throws是被动(在方法上是没有捕获异常进行处理,直接throws的)
4、例子:
public void str2int(String str) throws Exception { //这里将得到的异常向外抛出
try {
System.out.println(Integer.parseInt(str));
} catch(NumberFormatException e) {
//TODO 这里可以做一些处理,处理完成后将异常报出,让外层可以得到异常信息
throw new Exception(“格式化异常”);
}
}
Java中throw有什么用处?
throw在 java中是关于异常的操作.
首先异常在java中的意思是: 一些可以导致程序出问题的因素,比如书写错误,逻辑错误或者是api的应用错误等等. 为了防止程序的崩溃就要预先检测这些因素,所以java 使用了异常这个机制.
在java中异常是靠 “抛出” 也就是英语的”throw” 来使用的,意思是如果发现到什么异常的时候就把错误信息 “抛出”
JAVA的throw和throws怎么用!
throw是语句抛出一个异常;语法:throw(异常对象);
throws是方法可能抛出异常的声明。(用在声明方法时,表示该方法可能要抛出异常) ;语法:[(修饰符)](返回值类型)(方法名)([参数列表])[throws(异常类)]{……}
当某个方法可能会抛出某种异常时用于throws 声明可能抛出的异常,然后交给上层调用它的方法程序处理。如:
扩展资料:
throw与throws的区别
1、throw用在方法体内,上面代码显示了,是直接在main方法体内
throws用在方法声明后面,表示再抛出异常,由该方法的调用者来处理。这个看上面的代码就理解了。
2、throw是具体向外抛异常的,抛出的是一个异常实例。
throws声明了是哪种类型的异常,使它的调用者可以捕获这个异常。
3、throw,如果执行了,那么一定是抛出了某种异常了,安生throws表示可能出现,但不一定。
4、同时出现的时候,throws出现在函数头、throw出现在函数体,两种不会由函数去处理,真正的处理由函数的上层调用处理。
参考资料:百度百科 异常处理
java中的throw到底有什么用?
throw在java中是关于异常的操作。
首先异常在java中的意思是一些可以导致程序出问题的因素,比如书写错误,逻辑错误或者是api的应用错误等等,为了防止程序的崩溃就要预先检测这些因素,所以java 使用了异常这个机制。
在java中异常是靠 “抛出” 也就是英语的”throw” 来使用的,意思是如果发现到什么异常的时候就把错误信息 “抛出”。
所以如果没有throw,发生异常,只能由java的最后一道防线jvm去处理,性质不一样。
扩展资料:
注意事项
throw代表动作,表示抛出一个异常的动作,throws代表一种状态,代表方法可能有异常抛出。throw用在方法实现中,而throws用在方法声明中,throw只能用于抛出一种异常,而throws可以抛出多个异常。
throw关键字用来在程序中明确的抛出异常,相反,throws语句用来表明方法不能处理的异常。每一个方法都必须要指定哪些异常不能处理,所以方法的调用者才能够确保处理可能发生的异常,多个异常是用逗号分隔的。
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/304332.html