J***A语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代...

默认分类 未结 1 596
0o笑笑宝贝o0
0o笑笑宝贝o0 2023-03-21 17:34
相关标签:
1条回答
  • 2023-03-21 18:05

    throw 仅用于方法定义后面,指示该方法可能会抛出什么异常,使用该方法的方法必须处理该异常,或者再次抛出。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; }}程序可以继续执行,不会中断。

    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("程序发生了其他的异常"); //输出提示信息 } }}

    throws关键字通常被应用在声明方法时,用来指定可能抛出的异常。多个异常可以使用逗号隔开。当在主函数中调用该方法时,如果发生异常,就会将异常抛给指定异常对象。throw关键字通常用在方法体中,并且抛出一个异常对象。程序在执行到throw语句时立即停止,它后面的语句都不执行。通过throw抛出异常后,如果想在上一级代码中来捕获并处理异常,则需要在抛出异常的方法中使用throws关键字在方法声明中指明要跑出的异常;如果要捕捉throw抛出的异常,则必须使用try—catch语句。finally则是表示最后执行的,与try—catch连用,不管是否抛出异常,都会执行finally块的内容。

    (1)try、catch、fially异常在Java中代表一个错误的实体对象,在特定错误发生时会丢出特定的异常对象,有些预期中可能发生的异常,编译器会提醒你先行处理,对于一些程序运行时所发生的执行时异常,你有机会捕捉这些异常,并尝试将程序恢复至正常运行状态。在Java中如果想尝试捕捉异常,可以使用try、catch、finally 3个关键词组合的语法来达到目的。其语法基本结构如下:try{ //语句}catch(异常类型 名称){ //异常处理}finally{ //一定会处理的区块}一个try语法所包括的区块,必须有对应的catch区块或finally区块。try区块可以搭配多个catch区块,如果设置了catch区块,则finally区块可有可无;如果没有定义catch区块,则一定要有finally区块。(2)throw和throws①当程序发生错误而无法处理时,会丢出对应的异常对象。除些之外,在某些时刻,你可能会想要自行丢出异常。若想要自行丢出异常,可以使用throw关键词,并生成指定的异常对象。例如:throw new ArithmeticException();下面给出一个例子:public class ThrowDemo{ public static void main(String[] args){ try{ double data = 100 / 0.0; System.out.println("浮点数除以零:"+data); if(String.valueOf(data).equals("Infinity") throw new ArithmeticException("除零异常"); } catch(ArithmeticException e){ System.out.println(e); } }}执行结果如下:浮点数除以零:Infinityjava.lang.ArithmeticException: 除零异常②如果在方法中会有异常发生,而你并不想在方法中直接处理,而想要由调用方法的调用者来处理,则可以使用throws关键词来声明这个方法将会丢出异常。例如java.ioBufferedReader的readLine()方法就声明会丢出java.io.IOException。可以这样使用throws来丢出异常:private void someMethod(int[] arr) throws ArrayIndexOutOfBoundsException, ArithmeticException{ //实现}

    0 讨论(0)
提交回复