百度
360搜索
搜狗搜索

throws和throw的区别,Java:throw和throws有必要同时使用吗?详细介绍

本文目录一览: 异常处理中throws和throw的区别?

首先:
1.用户程序自定义的异常和应用程序特定的异常,必须借助于 throws 和 throw 语句来定义抛出异常。
1.1 throw是语句抛出一个异常。
语法:throw (异常对象);
throw e;
1.2 throws是方法可能抛出异常的声明。(用在声明方法时,表示该方法可能要抛出异常)
语法:[(修饰符)](返回值类型)(方法名)([参数列表])[throws(异常类)]{......}
public void doA(int a) throws Exception1,Exception3{......}
throws只是在方法上的声明,表示函数可能会抛出改异常
throw是抛出实际的异常,如果在try的代码块中使用可能会抛出异常的函数,catch捕获后想要再次抛出给上层方法体,则需要再方法体上再次声明。

throw和throws有什么区别

throw 读音:英 [θr??] 美 [θro?]
不及物动词:丢;抛;投掷
名词:丢;投掷的距离
及物动词.:抛;掷(色子);猛动(头、臂、腿);使处于,使限于;
例如:
He spent hours throwing a tennis ball against a wall
他好几个小时都对着一堵墙掷网球。
throws 读音英 [θr??z] 美 [θro?z]
动词:扔;抛;掷;投( throw的第三人称单数 );
例如:
Sophia jumps up and throws down her knitting
索菲娅跳起身来,扔下正在织的毛衣。

try-catch和throw,throws的区别

今天才搞明白,throw一般在try-catch中使用,try-catch发生异常会执行catch中的内容,在里面写throw可以自定义catch的异常,不会影响程序的运行。throws抛给上一级,谁调用还要处理,这个就没必要了,一般都自己处理了
你好
关于try-catch和throw,throws的区别和联系
区别一:throw 是语句抛出一个异常;throws 是方法抛出一个异常;
throw语法:throw

在方法声明中,添加throws子句表示该方法将抛出异常。如果一个方法会有异常,但你并不想处理这个异常,就在方法名后面用throws,这样这个异常就会抛出,谁调用了这个方法谁就要处理这个异常,或者继续抛出.

throws语法:[

]

([

])[throws

]

其中:异常类可以声明多个,用逗号分割。

区别二:throw要么和try-catch-finally语句配套使用,要么与throws配套使用。但throws可以单独使用,然后再由处理异常的方法捕获。

联系一:try .... catch 就是用catch 捕获 try 中的异常,并处理;catch是捕获异常。也就是说某一个操作有可能会抛出什么异常。throw 就是不处理异常,直接抛出异常

调用一个会throws exception的方法(在方法定义的时候可以用throws实现)时,需要把这个方法放在try里,然后用catch破获这个exception,做相应的处理。

throw new exception()是抛出一个exception,由别的method来破获它。

也就是说try....catch是为破获别人的exception用的,而throw是自己抛出exception让别人去破获的。

简单的说,如果一个方法中用了throws,那么这个方法会向上抛出一个异常,那么在调用这个方法的时候必须把这个调用放在try...catch块里处理这个异常。

希望对你有帮助





Java中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抛出该方法可能抛出的异常,否则编译会报错。
都是关键字
throw用于代码当中抛出异常;throws用于方法名结尾定义方法抛出的异常类型。
例如
int a = 1;throw new Exception();system.out.println("a");在throw这行控制台会报Exception异常,如果你new的是NullPointException就会报空指针异常,你抛什么他报什么。下面的输出不会执行,程序终止。
如果使用了异常处理,例如
int a=1;try{a=2;throw new Exception();a=3;}catch(Exception e){systemt.out.println(a);a=4;}system.out.println(a);这样在a赋2后手动抛异常,被catch捕获,然后输出a、a赋4,最终结果是输出2、4。
而throws用途:
public void method() throws Exception{...}这个方法被调用后,如果这个方法里出了错,这个错误就会被抛给引用它的那个方法。在控制台就会看到一层一层抛上去的引用栈。

阅读更多 >>>  eofexception是什么异常,java.io.EOFException异常怎么解决

throws和thrownew RuntimeException和try-catch的区别

throws 是对一个异常的抛出声明,通常放在方法的定义位置,效果是,当其他使用该方法时,必须提供 try-catch捕捉,否则编译时会发生异常。
throw 是对一个异常的抛出,与声明不同,throw出现在代码段内,如果发生异常手动的向上级抛出异常并中断程序继续执行,如果上级没有捕捉代码,继续向上抛出,直到捕获为止,如果一直没有捕获则会被传递到Main函数部分,导致程序终结。
try-catch是对异常的捕捉,在可能发生的异常段用 try{ }包裹,则该代码段发生异常时,将被catch段代码所处理,防止异常继续向上传递。
RunTimeException是一种异常的类型,运行时异常,存在于throw的宾语,或者catch的参数。用于声明异常类型,其父类是Exception。
程序异常有两种,一种是编译时异常,一种是运行时异常,编译时异常大部分编译器在编译阶段均会做出提示,而运行时异常一般不易察觉,例如数组索引越界等等。

throw和throws的用法

throw 是用在函数体里边,它抛出的异常如果没有在函数体里捕获,则必须用throws声明
throws是用在函数声明后
throws是用来声明一个方法可能抛出的所有异常信息
throw则是指抛出的一个具体的异常类型。
通常在一个方法(类)的声明处通过throws声明方法(类)可能抛出的异常信息,而在方法(类)内部通过throw声明一个具体的异常信息。
throws通常不用显示的捕获异常,可由系统自动将所有捕获的异常信息抛给上级方法;
throw则需要用户自己捕获相关的异常,而后在对其进行相关包装,最后在将包装后的异常信息抛出。

throws是什么意思

throws的意思是扔,是动词throw的第三人称单数。
扔,汉语常用字(一级字),读作rēng,形声字,最早见于商代甲骨文 。本义为扔掉、丢弃;意思是牵引、拉,向相反的方向牵引,使远离,就引申为抛投;进而又引申为丢弃。在现代汉语中,“扔”大多沿用扔掉、丢弃的本义。
扔,形声字。从手,乃声。甲骨文的右下方是个“手”形,代表人的右手;左边弯曲的线条是“乃”字,代表用右手扔出东西的样子。小篆中“扔”字将“乃”放到了“手”的右边。甲骨文“扔”的字形也像是人的右手正在拉着某个东西,所以“扔”也有牵引的意思。
throw双语例句
1、Sophia jumps up and throws down her knitting.索菲娅跳起身来,扔下正在织的毛衣。
2、Occasionally,he throws fancy words around.他有时会把华丽的词藻挂在嘴边。
3、This throws the current off or on.这东西可以截断或者接通电流。

throw to和throw at有什么区别吗?

throw to和throw at二者区别在于:
前者是“把某物扔给某人”,含有让某人接住某物的意味,是善意的;
而后者的意思是“把某物向某人扔去”,含有寻衅的意味,是恶意的。
试比较:
The boy throws a bone to the dog.
那小孩给狗扔了一块骨头。(善意)
The boy throws a bone at the dog.
那小孩把一块骨头扔到狗身上。(恶意)
扩展资料
throw的用法
v. (动词)
1、throw的基本意思是“投”“掷”“抛”,指用工具或徒手(弯曲臂肘)将物体以迅速发力的动作抛出,也可泛指任何推进动作,是日常用语,不带感情色彩。引申可表示“难住”“摔倒”“挺”“摆脱”“脱(皮)”“投射(光线,阴影)”“施加(影响)”等。
2、throw既可用作及物动词,也可用作不及物动词。用作及物动词时接名词、代词作宾语,也可接双宾语(其间接宾语可以转化为介词to的宾语)。
3、throw还可接由形容词充当补足语的复合宾语,当宾语较长或包含有疑问词或关系代词时,形容词常跟在动词的后面。
n. (名词)
throw用作名词时,基本意思是“投,掷,抛”,引申可指“投掷的距离”,是可数名词。
throw to和throw at二者区别在于:
前者是“把某物扔给某人”,含有让某人接住某物的意味,是善意的;
而后者的意思是“把某物向某人扔去”,含有寻衅的意味,是恶意的。
试比较:
The boy throws a bone to the dog.
那小孩给狗扔了一块骨头。(善意)
The boy throws a bone at the dog.
那小孩把一块骨头扔到狗身上。(恶意)
扩展资料
throw的用法
v.\t(动词)
1、throw的基本意思是“投”“掷”“抛”,指用工具或徒手(弯曲臂肘)将物体以迅速发力的动作抛出,也可泛指任何推进动作,是日常用语,不带感情色彩。引申可表示“难住”“摔倒”“挺”“摆脱”“脱(皮)”“投射(光线,阴影)”“施加(影响)”等。
2、throw既可用作及物动词,也可用作不及物动词。用作及物动词时接名词、代词作宾语,也可接双宾语(其间接宾语可以转化为介词to的宾语)。
3、throw还可接由形容词充当补足语的复合宾语,当宾语较长或包含有疑问词或关系代词时,形容词常跟在动词的后面。
n.\t(名词)
throw用作名词时,基本意思是“投,掷,抛”,引申可指“投掷的距离”,是可数名词。

Java:throw和throws有必要同时使用吗?

throws是让调用方法的函数处理异常,
throw是方法本身处理。
没必要同时使用。
具体用哪一个,那要看异常处理是不是这个方法需要做的事。就看你怎么理解面向对象编程了
代码中抛出异常,只要不是runtime的,方法上必须得throws啊
throws是抛出异常,谁调用谁处理,throw是处理异常,也可以一起使用,比如一个方法有A、B两只异常,它可以throw A异常,throwsB异常。这样调用这个方法时只用处理B异常就好,如果A异常包括了B异常,B异常是A异常的子类,那么可以处理B异常抛出A异常,那么调用这个方法时,只用处理A异常中不含B异常的其他异常。
总结:方法中只有一个异常可以处理或抛出不能同时处理又抛出,两个或多个不同异常可以处理一些抛出一些。抛出的异常必须与处理的异常不一样或比处理的异常大。

网站数据信息

"throws和throw的区别,Java:throw和throws有必要同时使用吗?"浏览人数已经达到18次,如你需要查询该站的相关权重信息,可以点击进入"Chinaz数据" 查询。更多网站价值评估因素如:throws和throw的区别,Java:throw和throws有必要同时使用吗?的访问速度、搜索引擎收录以及索引量、用户体验等。 要评估一个站的价值,最主要还是需要根据您自身的需求,如网站IP、PV、跳出率等!