专题类的网站,网站开发硬件成本,豌豆荚应用商店,wordpress pdf插件下载异常是 Java 程序中经常遇到的问题#xff0c;我想每一个 Java 程序员都讨厌异常#xff0c;一 个异常就是一个 BUG#xff0c;就要花很多时间来定位异常问题。 什么是异常及异常的分类请看这篇文章#xff1a;一张图搞清楚 Java 异常机制。今天#xff0c;栈长来列一下 J… 异常是 Java 程序中经常遇到的问题我想每一个 Java 程序员都讨厌异常一 个异常就是一个 BUG就要花很多时间来定位异常问题。 什么是异常及异常的分类请看这篇文章一张图搞清楚 Java 异常机制。 今天栈长来列一下 Java 中经常遇到的前 10 个异常排名不分先后。 1、NullPointerException 空指针异常操作一个 null 对象的方法或属性时会抛出这个异常。具体看这篇文章Java 避免空指针的 5 个案例。 2、OutOfMemoryError 内存异常异常这不是程序能控制的是指要分配的对象的内存超出了当前最大的堆内存需要调整堆内存大小-Xmx以及优化程序。 3、IOException IO即input, output我们在读写磁盘文件、网络内容的时候经常会生的一种异常这种异常是受检查异常需要进行手工捕获。 如文件读写会抛出 IOException public int read() throws IOException
public void write(int b) throws IOException 4、FileNotFoundException 文件找不到异常如果文件不存在就会抛出这种异常。 如定义输入输出文件流文件不存在会报错 public FileInputStream(File file) throws FileNotFoundException
public FileOutputStream(File file) throws FileNotFoundException FileNotFoundException 其实是 IOException 的子类同样是受检查异常需要进行手工捕获。 5、ClassNotFoundException 类找不到异常Java开发中经常遇到是不是很绝望这是在加载类的时候抛出来的即在类路径下不能加载指定的类。 看一个示例 public static T ClassT getExistingClass(ClassLoader classLoader, String className) {try {return (ClassT) Class.forName(className, true, classLoader);}catch (ClassNotFoundException e) {return null;}
} 它是受检查异常需要进行手工捕获。 6、ClassCastException 类转换异常将一个不是该类的实例转换成这个类就会抛出这个异常。 如将一个数字强制转换成字符串就会报这个异常 Object x new Integer(0);
System.out.println((String)x); 这是运行时异常不需要手工捕获。 7、NoSuchMethodException 没有这个方法异常一般发生在反射调用方法的时候如 public Method getMethod(String name, Class?... parameterTypes)throws NoSuchMethodException, SecurityException {checkMemberAccess(Member.PUBLIC, Reflection.getCallerClass(), true);Method method getMethod0(name, parameterTypes, true);if (method null) {throw new NoSuchMethodException(getName() . name argumentTypesToString(parameterTypes));}return method;
} 它是受检查异常需要进行手工捕获。 8、IndexOutOfBoundsException 索引越界异常当操作一个字符串或者数组的时候经常遇到的异常。 如图所示它是运行时异常不需要手工捕获。 9、ArithmeticException 算术异常发生在数字的算术运算时的异常如一个数字除以 0 就会报这个错。 double n 3 / 0; 这个异常虽然是运行时异常可以手工捕获抛出自定义的异常如 public static Timestamp from(Instant instant) {try {Timestamp stamp new Timestamp(instant.getEpochSecond() * MILLIS_PER_SECOND);stamp.nanos instant.getNano();return stamp;} catch (ArithmeticException ex) {throw new IllegalArgumentException(ex);}
} 10、SQLException SQL异常发生在操作数据库时的异常。 如下面的获取连接 public Connection getConnection() throws SQLException {if (getUser() null) {return DriverManager.getConnection(url);} else {return DriverManager.getConnection(url, getUser(), getPassword());}
} 又或者是获取下一条记录的时候 boolean next() throws SQLException; 它是受检查异常需要进行手工捕获。 栈长这里只列举了 10 个 Java 中最常见的基本异常另外栈长已经整理了 Java 系列核心知识点文章关注Java技术栈微信公众号在后台回复关键字java即可获取。 话说你遇到的最多的是哪个呢欢迎留言分享。 本文原创首发于微信公众号Java技术栈id:javastack关注公众号在后台回复 java 可获取更多转载请原样保留本信息。