资讯详情

java中的异常类浅析_常见异常类_自定义异常类

三种异常类型

  • Error 这意味着恢复不是一个不可能但困难的严重问题。例如,内存溢出。不可能指望程序处理这种情况。

  • RuntimeException表示设计或实现问题。也就是说,如果程序运行正常,就不会发生。例如,如果数组索引扩展不超过数组边界,则ArrayIndexOutOfBoundsException异常永远不会抛出。例如,这也适用于取消引用空值对象的变量。这种异常通常不会发生在正确设计和实现的程序中。这将导致一个操作信息,以确保采取措施纠正问题,而不是隐藏在没有人注意到的地方。

  • 其他异常表示操作困难;它通常是由环境效应引起的,可以处理。具体例子包括未找到或无效的文件URL异常(用户犯了错误)URL)。

(摘自《java 77从入门到精通 张峰 编着)

(图片来源 《java马朝辉教程(第四版) 等译)

错误(Error)运行异常(RuntimeException)称为不可控异常;

其他异常属于可控异常,可控异常在方法中用throws声明。

至于操作异常,你的程序有问题,也就是有问题bug,当然,你也可以修改程序throws声明。

常见的异常类型

算术操作异常(ArithmeticException)

数组下标越界异常(ArrayIndexOutOfBoundsException)

数组元素类型不匹配异常(ArrayStoreException)

强制类型转换异常(ClassCastException)

索引越界异常(IndexOutOfBoundsException)

空指针异常(NullPointerException)

异常的数字格式转换(NumberFormatException)

字符串索引越界异常(StringIndexOutOfBoundsException)

操作错误(UnsupportedOperationException)

找不到指定类(ClassNotFoundException)

请求方法不存在(NoSuchMethodException)

异常无法访问(IllegalAccessException)

非法参数异常(IllegalArgumentException)

可以到jdk帮助文档查看更多异常类型

自定义异常类

系统中的异常类别有限,开发中会出现各种异常,定制异常类别非常重要

class 类名 extends ExceptionType{   code }

自定义异常类需要继承Exception类或其子类

package pc;  public class demo4 {   static void fun(int n) throws MyException {     if(n < 0){       MyException e = new MyException(n);       throw(e);             //抛出异常      }     double number = Math.sqrt(n);     System.out.println(n   "的平方根:"   number);    }    public static void main(String[] args) {     try {       fun(-5);      } catch (MyException e) {       System.out.println(e.getMessage()); //       e.printStackTrace(System.out);  //使用此代码,输出与系统异常输出相同 ////在此指定输出流System.out,printStackTrace()默认使用System.err输出流输出,与System.out是两种不同的输出流      }    }  }  // 自定义异常类 class MyException extends Exception {   String message;   MyException(int n){     message=n   "不是正数";    }   public String getMessage() {     return message;    } }

标签: 朝辉低压高温传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台