常见的Java异常有哪些
导读:本文共2251字符,通常情况下阅读需要8分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: 异常是 Java 程序中经常遇到的问题,我想每一个 Java 程序员都讨厌异常,一 个异常就是一个 BUG,就要花很多时间来定位异常问题。今天,栈长来列一下 Java 中经常遇到的前 10 个异常,排名不分先后。1、NullPointerExcept... ...
目录
(为您整理了一些要点),点击可以直达。
异常是 Java 程序中经常遇到的问题,我想每一个 Java 程序员都讨厌异常,一 个异常就是一个 BUG,就要花很多时间来定位异常问题。
今天,栈长来列一下 Java 中经常遇到的前 10 个异常,排名不分先后。
1、NullPointerException
空指针异常,操作一个 null 对象的方法或属性时会抛出这个异常。
2、OutOfMemoryError
内存异常异常,这不是程序能控制的,是指要分配的对象的内存超出了当前***的堆内存,需要调整堆内存大小(-Xmx)以及优化程序。
3、IOException
IO,即:input, output,我们在读写磁盘文件、网络内容的时候经常会生的一种异常,这种异常是受检查异常,需要进行手工捕获。
如文件读写会抛出 IOException:
publicintread()throwsIOExceptionpublicvoidwrite(intb)throwsIOException
4、FileNotFoundException
文件找不到异常,如果文件不存在就会抛出这种异常。
如定义输入输出文件流,文件不存在会报错:
publicFileInputStream(Filefile)throwsFileNotFoundExceptionpublicFileOutputStream(Filefile)throwsFileNotFoundException
FileNotFoundException 其实是 IOException 的子类,同样是受检查异常,需要进行手工捕获。
5、ClassNotFoundException
类找不到异常,Java开发中经常遇到,是不是很绝望?这是在加载类的时候抛出来的,即在类路径下不能加载指定的类。
看一个示例:
publicstatic<T>Class<T>getExistingClass(ClassLoaderclassLoader,StringclassName){try{return(Class<T>)Class.forName(className,true,classLoader);}catch(ClassNotFoundExceptione){returnnull;}}
它是受检查异常,需要进行手工捕获。
6、ClassCastException
类转换异常,将一个不是该类的实例转换成这个类就会抛出这个异常。
如将一个数字强制转换成字符串就会报这个异常:
Objectx=newInteger(0);System.out.println((String)x);
这是运行时异常,不需要手工捕获。
7、NoSuchMethodException
没有这个方法异常,一般发生在反射调用方法的时候,如:
publicMethodgetMethod(Stringname,Class<?>...parameterTypes)throwsNoSuchMethodException,SecurityException{checkMemberAccess(Member.PUBLIC,Reflection.getCallerClass(),true);Methodmethod=getMethod0(name,parameterTypes,true);if(method==null){thrownewNoSuchMethodException(getName()+"."+name+argumentTypesToString(parameterTypes));}returnmethod;}
它是受检查异常,需要进行手工捕获。
8、IndexOutOfBoundsException
索引越界异常,当操作一个字符串或者数组的时候经常遇到的异常。
如图所示,它是运行时异常,不需要手工捕获。
9、ArithmeticException
算术异常,发生在数字的算术运算时的异常,如一个数字除以 0 就会报这个错。
doublen=3/0;
这个异常虽然是运行时异常,可以手工捕获抛出自定义的异常,如:
publicstaticTimestampfrom(Instantinstant){try{Timestampstamp=newTimestamp(instant.getEpochSecond()*MILLIS_PER_SECOND);stamp.nanos=instant.getNano();returnstamp;}catch(ArithmeticExceptionex){thrownewIllegalArgumentException(ex);}}
10、SQLException
SQL异常,发生在操作数据库时的异常。
如下面的获取连接:
publicConnectiongetConnection()throwsSQLException{if(getUser()==null){returnDriverManager.getConnection(url);}else{returnDriverManager.getConnection(url,getUser(),getPassword());}}
又或者是获取下一条记录的时候:
booleannext()throwsSQLException;
它是受检查异常,需要进行手工捕获。
</div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
常见的Java异常有哪些的详细内容,希望对您有所帮助,信息来源于网络。