java常见的异常

简介: java常见的异常

异常分类


Throwable


是java异常的顶级类,所有异常都继承于这个类。

Error,Exception是异常类的两个大分类。


Error


Error是非程序异常,即程序不能捕获的异常,一般是编译或者系统性的错误,如OutOfMemorry内存溢出异常等。


Exception

Exception是程序异常类,由程序内部产生。Exception

又分为运行时异常,非运行时异常类。


运行时异常

运行时异常的特点是java编译器不会检查它,也就是说,当程序中可能出现这类异常时,会编译通过,但是在运行时会出现错误。

如NullPointException,ArrayIndexoutOfBuoundsException等。


非运行时异常

程序必须进行处理的异常,编译不通过,必须捕获或者抛出。如IOException,ClassNotFoundException等。


java常见的异常有哪些?

1、NullPointerException

空指针异常,操作一个 null 对象的方法或属性时会抛出这个异常。

   private static void NullPointer() {
        String s = null;
        System.out.println(s.equals("123"));
    }

28.png

2、OutofOutofMemoryError

内存出现异常的一种异常,这不是程序能控制的,是指要分配的对象的内存超出了当前最大的堆内存,需要调整堆内存大小(-Xmx)以及优化程序。


3、IOException

IO,即:input, output,我们在读写磁盘文件、网络内容的时候经常会生的一种异常,这种异常是受检查异常,需要进行手工捕获。

如文件读写会抛出 IOException:

public int read() throws IOException
public void write(int b) throws IOException

4、FileNotFoundException

文件找不到异常,如果文件不存在就会抛出这种异常。

FileNotFoundException 其实是 IOException 的子类,同样是受检查异常,需要进行手工捕获。

如定义输入输出文件流,文件不存在会报错:

public FileInputStream(File file) throws FileNotFoundException
public FileOutputStream(File file) throws FileNotFoundException

5、ClassNotFoundException

类找不到异常,Java开发中经常遇到,是不是很绝望?这是在加载类的时候抛出来的,即在类路径下不能加载指定的类。它是受检查异常,需要进行手工捕获。

看一个示例:

public static Class getExistingClass(ClassLoader classLoader, String className) {
 try{
    return (Class) Class.forName(className, true, classLoader);
  } catch( ClassNotFoundException e) {
    return null;
  }
}

6、ClassCastException

类转换异常,将一个不是该类的实例转换成这个类就会抛出这个异常。

这是运行时异常,不需要手工捕获。

如将一个数字强制转换成字符串就会报这个异常:

Object x = new Integer(0);
System.out.println((String)x);

29.png

7、IndexOutOfBoundsException

索引越界异常,当操作一个字符串或者数组的时候经常遇到的异常。它是运行时异常,不需要手工捕获。

例:一个ArrayList数组中没有元素,而你想获取第一个元素,运行是就会报此类型的错误。

public class test{
  public static void main(args[] ){
    List list = new ArrayList<>();
    System.out.println(list.get(0));
  }
}

8、ArithmeticException

算术异常,发生在数字的算术运算时的异常,如一个数字除以 0 就会报这个错。

  double n = 3 / 0;

30.png

9、NumberFormatException

数字格式异常。当试图将一个String 转换为指定的数字类型,而该字符串确不满足数字类型要求的格式时,抛出该异常。

例如:

 private static void NumberFormat(){
        String a= "a";
        int b = Integer.valueOf(a);
        System.out.println(b);
    }

31.png

10、StringIndexOutOfBoundsException

字符串索引越界异常。当使用索引值访问某个字符串中的字符,而该索引值小于0或大于等于序列大小时,抛出该异常.

 //字符串索引越界异常
    private static  void  StringIndexOutOfBounds(){
        String a = "a";
        System.out.println(a.substring(3,4));
    }

32.png

相关文章
|
7天前
|
网络协议 Java Apache
【Java】已解决java.net.HttpRetryException异常
【Java】已解决java.net.HttpRetryException异常
12 0
|
7天前
|
网络协议 Java
【Java】已解决java.net.UnknownHostException异常
【Java】已解决java.net.UnknownHostException异常
48 0
|
4天前
|
Java
Java进阶之异常捕捉处理和错误处理
【7月更文挑战第9天】Java异常处理确保程序在遇到错误时不会崩溃。关键机制包括try-catch-finally,用于捕获(try)、处理(catch)和清理(finally)异常。异常分为检查型(需编译时处理,如IOException)和非检查型(如NullPointerException)。throw用于抛出异常,throws用于声明方法可能抛出的异常。Error表示系统级错误,不可恢复;Exception是可处理的异常,包括检查型和非检查型。自定义异常通过继承Exception实现。Java 7引入try-with-resources自动关闭资源。
7 1
|
7天前
|
安全 Java
【Java】已解决java.nio.channels.OverlappingFileLockException异常
【Java】已解决java.nio.channels.OverlappingFileLockException异常
11 1
|
7天前
|
存储 安全 Java
【Java】已解决java.io.ObjectStreamException异常
【Java】已解决java.io.ObjectStreamException异常
9 1
|
7天前
|
Java
【Java】已解决java.nio.channels.ClosedChannelException异常
【Java】已解决java.nio.channels.ClosedChannelException异常
11 1
|
7天前
|
Java
【Java】已解决java.nio.channels.FileLockInterruptionException异常
【Java】已解决java.nio.channels.FileLockInterruptionException异常
12 1
|
3天前
|
Java 编译器
Java运行时异常和非运行时异常
Java运行时异常和非运行时异常
|
4天前
|
Java
Java进阶之异常捕捉处理和错误处理
Java进阶之异常捕捉处理和错误处理
5 0
|
5天前
|
存储 运维 前端开发
Java面试题:什么是Java的异常处理机制?列举常见的异常类,并说明使用场景
Java面试题:什么是Java的异常处理机制?列举常见的异常类,并说明使用场景
15 0