java除法异常处理代码 java除法语句

JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意

throw 仅用于方法定义后面,指示该方法可能会抛出什么异常,使用该方法的方法必须处理该异常,或者再次抛出。

创新互联建站专注于企业成都全网营销推广、网站重做改版、成华网站定制设计、自适应品牌网站建设、HTML5建站成都商城网站开发、集团公司官网建设、外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为成华等各大城市提供网站开发制作服务。

throws 用于当程序判断发生异常时,用该语句抛出异常,或处理异常时再次抛出异常。

//下面三个关键字就是处理异常

try {

//这里放可能会发生异常的语句

} catch(Exception e) {

//这里处理异常

} finally {

//这里的语句必然会得到执行,不管异常发省与否,

//用于关闭数据库,关闭连接等收尾操作(非必要)

}

java异常的一个简单例子,比如我有一个除法方法

public int divide(int a, int b) {

return a / b;

}

但是这就有一个问题,当b是0时,程序会报错。

如果引入异常,改成这样

public int divide(int a, int b) throws Exception {

if (b == 0) {

throw new Exception("b = 0");

}

return a / b;

}

那么调用端该怎么用呢

public class ExceptionTest {

public static void main(String[] args) {

ExceptionTest et = new ExceptionTest();

try {

System.out.println(et.divide(12, 0));

} catch (Exception e) {

System.out.println("0不能做被除数");

}

}

public int divide(int a, int b) throws Exception {

if (b == 0) {

throw new Exception("b = 0");

}

return a / b;

}

}

程序可以继续执行,不会中断。

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后可以跟多个异常类型。

扩展资料:

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

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异常处理

import java.util.Scanner;

public class ExceptionDemo {

public static void main(String[] args) {

double op1,op2,r;

Scanner sc=new Scanner(System.in);

System.out.println("请输入两个double型的参数");

op1=sc.nextDouble();

op2=sc.nextDouble();

try {

r=div(op1,op2);

}

catch(MyException ex) {

System.out.println(ex.getMessage());

do {

System.out.println("除数为0,请重新输入操作数2的值!");

op2=op2=sc.nextDouble();

}while(0==op2);

}

finally {

System.out.println(""+op1+"/"+op2+"的结果是:"+(op1/op2));

}

sc.close();

}

static double div(double op1,double op2) throws MyException {

if(0==op2) {

throw new MyException("自定义异常,除数为0异常");

}

return op1/op2;

}

}

class MyException extends Exception {

MyException(String msg) {

super(msg);

}

}

JAVA,将整数变量a和b相除,即a/b,并对b=0时进行自定义异常处理。

public class DevideZeroException extends RuntimeException// (1)//自定义异常类DevideZeroException来表示除数为0错误

{

public DevideZeroException() {

super("除数不能为零!");// (2)("除数不能为零!");

}

public DevideZeroException(String message) {

super(message);// ( 3 )

}

}

public class Test {

public static void main(String[] args) {

try {

int a = 10;

int b = 0;

if (b == 0 /* (4) */) {/* (5) */

throw new DevideZeroException();

} else {

System.out.println(a / b);

}

} catch (DevideZeroException e) {

System.out.println(e.getMessage()/* (6) */);

} finally {

System.out.println("end");

}

}

}

运行结果:

除数不能为零!

end


文章名称:java除法异常处理代码 java除法语句
URL地址:http://myzitong.com/article/dopjido.html