问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java中的throw到底有什么用?

发布网友 发布时间:2022-04-22 13:50

我来回答

6个回答

热心网友 时间:2022-04-27 15:51

throw在java中是关于异常的操作。

首先异常在java中的意思是一些可以导致程序出问题的因素,比如书写错误,逻辑错误或者是api的应用错误等等,为了防止程序的崩溃就要预先检测这些因素,所以java 使用了异常这个机制。

在java中异常是靠 "抛出" 也就是英语的"throw" 来使用的,意思是如果发现到什么异常的时候就把错误信息 "抛出"。

所以如果没有throw,发生异常,只能由java的最后一道防线jvm去处理,性质不一样。

扩展资料:

注意事项

throw代表动作,表示抛出一个异常的动作,throws代表一种状态,代表方法可能有异常抛出。throw用在方法实现中,而throws用在方法声明中,throw只能用于抛出一种异常,而throws可以抛出多个异常。

throw关键字用来在程序中明确的抛出异常,相反,throws语句用来表明方法不能处理的异常。每一个方法都必须要指定哪些异常不能处理,所以方法的调用者才能够确保处理可能发生的异常,多个异常是用逗号分隔的。

热心网友 时间:2022-04-27 17:09

你编译的程序本身不能有效处理异常,只能由虚拟机jvm自动默认的处理方式;你定义的方法用throws声明了该方法可能存在的异常类型,暂时让java的编译器可以将该java文件正常编译成class文件,但是一旦运行class文件时,因为你的程序编译的不严谨,程序本身没有处理异常的机制,最后只能由jvm去默认的处理,一般默认的就是停止该程序运行,报出异常原因
程序编译,需要严谨,你如果将throw放在方法内部的catch()语句中,表示,你这个方法有了处理可能存在异常的机制,那就是一旦发生异常,方法内部的catch()语句直接捕捉了异常,并将异常类型的对象传递给该方法的调用处进行处理,方法调用处的catch语句直接会终止程序运行,抛出方法内部throw传递过来的异常;这属于程序本身自己检测到了异常而终止了程序运行。
说的再通俗一点,就是你方法内部如果用throw抛出异常对象,这表示你的程序本身有处理异常的能力。如果没有throw,发生异常,只能由java的最后一道防线jvm给你去处理! 性质不一样。

热心网友 时间:2022-04-27 18:43

直接上代码:
try{
//todo
}catch(Exception e){
//do log or other
throw new Exception(e);
}

热心网友 时间:2022-04-27 20:35

因为你可以在一个很普通的地方比如一个else if分支里抛异常,也可以在一个该抛异常的地方什么也不做。

热心网友 时间:2022-04-27 22:43

没有引发,你觉得你捕捉到的异常是从哪来的

热心网友 时间:2022-04-28 01:07

这两者虽然看起来只有一个s的区别,但是作用完全不一样
1、throws关键字通常被应用在声明方法时,用来指定可能抛出的异常。多个异常可以使用逗号隔开。当在主函数中调用该方法时,如果发生异常,就会将异常抛给指定异常对象。如下面例子所示:
public class Shoot { 创建类
static void pop() throws NegativeArraySizeException {
//定义方法并抛出NegativeArraySizeException异常
int [] arr = new int[-3];//创建数组
}
public static void main(String[] args) {//主方法
try {
pop(); //调用pop()方法
} catch (NegativeArraySizeException e) {
System.out.println("pop()方法抛出的异常");//输出异常信息
}
}
}

2、throw关键字通常用在方法体中,并且抛出一个异常对象。程序在执行到throw语句时立即停止,它后面的语句都不执行。通过throw抛出异常后,如果想在上一级代码中来捕获并处理异常,则需要在抛出异常的方法中使用throws关键字在方法声明中指明要跑出的异常;如果要捕捉throw抛出的异常,则必须使用try—catch语句。举例如下:
class MyException extends Exception { //创建自定义异常类
String message; //定义String类型变量
public MyException(String ErrorMessagr) { //父类方法
message = ErrorMessagr;
}
public String getMessage(){ //覆盖getMessage()方法
return message;
}
}
public class Captor { //创建类
static int quotient(int x,int y) throws MyException{//定义方法抛出异常
if(y < 0){ //判断参数是否小于0
throw new MyException("除数不能是负数");//异常信息
}
return x/y;//返回值
}
public static void main(String args[]){ //主方法
try{ //try语句包含可能发生异常的语句
int result = quotient(3,-1);//调用方法quotient()
}catch (MyException e) { //处理自定义异常
System.out.println(e.getMessage()); //输出异常信息
}
catch (ArithmeticException e) {
//处理ArithmeticException异常
System.out.println("除数不能为0");//输出提示信息
}
catch (Exception e) { //处理其他异常
System.out.println("程序发生了其他的异常");
//输出提示信息
}
}
}
希望能解决您的问题。追问你说的这些没有解决我的问题啊!!我想问的不是throw怎么用,我想知道throw有什么意义,既然jvm都定义好异常了 还需要throw干啥!

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
为什么来大姨妈胸会胀 少儿学什么舞蹈 青年学什么舞蹈好 成年人学什么舞蹈 福州企业最低工资标准 2013年厦门的底薪是多少 生产要素的需求有哪些性质 生产要素的需求有何特点? 什么是生产要素需求 微观经济学要素需求什么是条件要素需求?它和要素需求有什么不同?_百度... Java语言中throw和throws的区别是什么? 在java中,throw与throws有什么区别 有没有珠海自驾游攻略 Java中throw和throws有什么区别? 广州、深圳、珠海四日游深圳、珠海游 JAVA的throw和throws怎么用! 珠海旅游景点那些值得去? 珠海自由行 求珠海自助游攻略 珠海两天一晚旅游攻略 想去珠海玩3天2夜怎么安排行程 去珠海旅游,有哪些攻略值得分享? 三天两夜珠海旅游攻略 珠海旅游攻略 跪求珠海三天两夜的旅游攻略,越详细越好…… 为什么商场厕所里的信号,总是很差? 为什么厕所总是没有wifi信号? 为什么厕所WiFi信号最差 家里卫生间WiFi信号不好,总卡,怎么解决? 为什么厕所无线WiFi信号最差 java中的throws用法 计划去珠海游玩,需要提前做哪些准备? java中throws有什么用,就算不写throws,一样是可以向调用方法的方法抛出异常 Java中throw和throws的区别 java程序中的throws是干什么用的? Java中throws和throw的区别讲解 JAVA 抛出异常throws怎么用的? JAVA&nbsp;抛出异常throws怎么用的? java throw和throws的区别 java中throw和throws的具体干嘛的? JAVA throws使用举例 java里什么时候用throws 在java中,异常捕捉中,什么时候方法头就要加上throws,有时却又不要呢? 在java中throw与throws各自用在什么地方? java中异常处理的throws的作用是什么 如何使用扫描功能 outlook怎么扫二维码 别人发给我的世qq文件里的二维码怎么扫 诺基亚1520win10系统怎样扫描 二维码扫描 Hp3638打印机如何扫描‘