当前位置:首页 » 编程语言 » java主动抛异常

java主动抛异常

发布时间: 2022-06-19 06:45:12

java的try catch语句在循环里执行时抛出异常,还继续循环吗

  1. 如果异常发生的位置在try代码块里,那么如果在catch里,没有主动抛出异常,并且catch的代码没有发生异常,循环继续。

  2. 总之,循环是否中断,看 代码是否自己将异常处理了,如果程序处理了,不抛给 JVM,那么循环就不会终止,另外要注意自己的catch代码块是否也可能出现异常。

  3. 语句会抛出你自定义的异常,这种异常程序要求必须try----catch处理或者声明抛出异常。

  4. throwsXXException(自定义异常)想要重试还是异常就终止的话,需要声明抛出异常,也就是告诉虚拟机,如果此时再次抛出异常,则直接抛给调用者,如果调用者没有对该异常进行处理,那么程序会弹出提示异常关闭。

Ⅱ java 抛出异常机制的一个小问题

这是处理异常的方式不同。直接在类上用throw,表示发生异常本类之内不做任何处理,直接把这个异常往外抛;而try-catch则是主动捕获这个异常,一旦发生就进行相应的处理。
一般在正式工作当中,项目里不会用throw去处理异常,那样太不负责任了。基本都是通过try-catch方式捕获,然后进行异常的处理。

Ⅲ java中 方法中抛出异常处理方法

Java语言提供两种异常处理机制:捕获异常和声明抛弃异常。

1、捕获异常:

(1)在Java程序运行过程中系统得到一个异常对象是,它将会沿着方法的调用栈逐层回溯,寻找处理这一异常的代码。

(2)找到能够处理这种类型异常的方法后,运行时系统把当前异常交给这个方法处理;如果找不到可以捕获异常的方法,则运行时系统将终止,相应的Java程序也将退出。

(3)捕获异常是通过try-catch-finally语句实现的。语法为:

try{

...

}catch(ExceptionName1 e){

...

}catch(ExceptionName2 e){

...

}

...

}finally{

...

}

2、声明抛弃异常:

(1)当Java程序运行时系统得到一个异常对象时,如果一个方法并不知道如何处理所出现的异常,则可在方法声明时,声明抛弃异常。

(2)声明抛弃异常是在一个方法声明中的throws子句中指明的。如:

public int read() throws IOException{

...

}

其中throws IOException就是声明抛弃异常,throws后可以跟多个异常类型。

(3)java主动抛异常扩展阅读:

程序设计语言的异常机制:

1、多数语言的异常机制的语法是类似的:用throw或raise抛出一个异常对象(Java或C++等)或一个特殊可扩展的枚举类型的值(如Ada语言);

2、异常处理代码的作用范围用标记子句(try或begin开始的语言作用域)标示其起始,以第一个异常处理子句(catch, except, resuce等)标示其结束;可连续出现若干个异常处理子句,每个处理特定类型的异常。

3、某些语言允许else子句,用于无异常出现的情况。更多见的是finally, ensure子句,无论是否出现异常它都将执行,用于释放异常处理所需的一些资源。

(1)C++异常处理是资源获取即初始化(Resource-Acquisition-Is-Initialization)的基础。

(2)C语言一般认为是不支持异常处理的。Perl语言可选择支持结构化异常处理(structured exception handling)。

(3)Python语言对异常处理机制是非常普遍深入的,所以想写出不含try, except的程序非常困难。

参考资料来源:

网络-异常处理

Ⅳ java中怎么抛异常和接收异常

抛出异常 就是使用 throw关键字 除了抛出常见的默认异常外,主要是用于抛出自定义异常,关于自定义异常就是继承了Exception类的子类接受异常是指捕获异常吗,似乎没有听说过接受异常这种说法,捕获异常的话主要是用 try{} catch(){} finally{} 结构try {}数据块中 是预期可能出现异常的代码catch 的 attribute 是指定希望捕获的异常,比如catch(NullPointerException e )就是只测试并捕获空指针异常,再如catch(Exception e) 就可以捕获所有继承了Exception的子类,{}则是捕获该异常后的处理代码,比如输出错误信息,etc 实际应用中可以有多个catch 用来区分不同的异常然后运行不同的代码进行处理finally{}则是无论是否捕获异常,该代码都会执行 希望对你有帮助

Ⅳ JAVA如何抛出异常

如果你知道你写的某个函数有可能抛出异常,而你又不想在这个函数中对异常进行处理,只是想把它抛出去让调用这个函数的上级调用函数进行处理,那么有两种方式可供选择:

第一种方式:直接在函数头中throws SomeException,函数体中不需要try/catch。比如将最开始的例子中的testEx2改为下面的方式,那么testEx1就能捕捉到testEx2抛出的异常了。
boolean testEx2() throws Exception{
boolean ret = true;
int b=12;
int c;
for (int i=2;i>=-2;i--){
c=b/i;
System.out.println("i="+i);
}
return true;
}
第二种方式:使用try/catch,在catch中进行一定的处理之后(如果有必要的话)抛出某种异常。例如上面的testEx2改为下面的方式,testEx1也能捕获到它抛出的异常:
boolean testEx2() throws Exception{
boolean ret = true;
try{
int b=12;
int c;
for (int i=2;i>=-2;i--){
c=b/i;
System.out.println("i="+i);
}
return true;
}catch (Exception e){
System.out.println("testEx2, catch exception");
Throw e;
}
}
第三种方法:使用try/catch/finally,在catch中进行一定的处理之后(如果有必要的话)抛出某种异常。例如上面的testEx2改为下面的方式,testEx1也能捕获到它抛出的异常:
boolean testEx2() throws Exception{
boolean ret = true;
try{
int b=12;
int c;
for (int i=2;i>=-2;i--){
c=b/i;
System.out.println("i="+i);
throw new Exception("aaa");
}
return true;
}catch (java.lang.ArithmeticException e){
System.out.println("testEx2, catch exception");
ret = false;
throw new Exception("aaa");
}finally{
System.out.println("testEx2, finally; return value="+ret);
}

}

Ⅵ JAVA 什么是抛异常什么情况下用抛异常

”抛异常”简单的说就是出现一些意想不到的情况时的处理方法,举个例子,当做一个加法时,如果你输入的不是数字,就会异常,这个时候如果你没在程序里作异常处理,出错信息就会很烦,普通用户看不懂,加上异常处理,也就是”抛异常”后,可以自己定义出错信息.
当有可能出现异常错误时”抛出异常”

Ⅶ java抛出异常在哪里处理

如果不抛出异常则是在catch块里,抛出则由调用方法的类处理。
为了避免调用的人不知道有异常,才抛出异常的,所以是谁掉用的久在哪里处理。说的对吗
对.
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("程序发生了其他的异常");
//输出提示信息
}
}
}

热点内容
华为平板怎么储存服务器文件 发布:2025-02-06 12:49:21 浏览:479
php查询结果数组 发布:2025-02-06 12:31:05 浏览:714
怎样把照片压缩打包 发布:2025-02-06 12:15:19 浏览:496
如何编译java文件 发布:2025-02-06 12:05:58 浏览:237
九九乘法编程 发布:2025-02-06 12:05:05 浏览:519
台式机忘记开机密码怎么办 发布:2025-02-06 11:58:01 浏览:871
android刷新按钮 发布:2025-02-06 11:57:17 浏览:586
存储过程有输入参数和输出参数 发布:2025-02-06 11:55:32 浏览:99
成绩评选算法 发布:2025-02-06 11:42:51 浏览:997
数据库测试数据 发布:2025-02-06 11:31:05 浏览:824