`
apprentice_ll26
  • 浏览: 25980 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

常见的RuntimeException

 
阅读更多
关键字: $异常处理
Java中采用了强制异常捕捉机制,这样一方面提高了程序的可靠性,不过有时候也带来一些麻烦。比如: int i= Integer.parseInt("33");这个我知道它不可能会抛出异常,但是不捕捉异常的话就过不了编译这关,当然这个代码没有意义的。



   Java中所有异常或者错误都继承Throwable,我们把它分为三类吧:
1.Error:所有都继承自Error,表示致命的错误,比如内存不够,字节码不合法等。
2.Exception:这个属于应用程序级别的异常,这类异常必须捕捉。
3.RuntimeException:奇怪RuntimeException继承了Exception,而不是直接继Error,  这个表示系统异常,比较严重。



   Error 我们很少遇到,但是并不是说Error就一定非常致命,举个例子,NoSuchMethodError表示没有这个方法,你调用的方法不存在,你一定觉得奇怪,不存在怎么编译的过去呀?很简单的,你先编译好一个被调用的类A,给一个方法。然后在你的程序调用它,编译没问题,运行也没问题。现在再把A类中这个方法去掉,重新编译一遍,你再运行你的程序就知道错误是怎么回事了。
Exception不用说,我们要自己捕捉。
RuntimeException可以说见的最多了,下面我们说明一下常见的RuntimeException:



NullPointerException:见的最多了,其实很简单,一般都是在null对象上调用方法了。
String s=null;
boolean eq=s.equals(""); // NullPointerException
这里你看的非常明白了,为什么一到程序中就晕呢?
public int getNumber(String str){
  if(str.equals("A")) return 1;
   else if(str.equals("B")) return 2;
}
这个方法就有可能抛出NullPointerException,我建议你主动抛出异常,因为代码一多,你可能又晕了。
public int getNumber(String str){
  if(str==null) throw new NullPointerException("参数不能为空");
                                   //你是否觉得明白多了
  if(str.equals("A")) return 1;
   else if(str.equals("B")) return 2;
}



NumberFormatException:继承IllegalArgumentException,字符串转换为数字时。
比如int i= Integer.parseInt("ab3");



ArrayIndexOutOfBoundsException:数组越界
比如 int[] a=new int[3]; int b=a[3];



StringIndexOutOfBoundsException:字符串越界
比如 String s="hello"; char c=s.chatAt(6);



ClassCastException:类型转换错误
比如 Object obj=new Object(); String s=(String)obj;



UnsupportedOperationException:该***作不被支持,如果我们希望不支持这个方法,可以抛出这个异常。既然不支持还要这个干吗?有可能子类中不想支持父类中有的方法,可以直接抛出这个异常。



ArithmeticException:算术错误,典型的就是0作为除数的时候。



IllegalArgumentException:非法参数,在把字符串转换成数字的时候经常出现的一个异常,我们可以在自己的程序中好好利用这个异常。



这些异常一看到名字就知道是怎么回事了,其实只要理解了java的异常处理机制,这些都不是问题。
分享到:
评论

相关推荐

    总结了一下JAVA中常见的几种RuntimeException

    总结了一下JAVA中常见的几种RuntimeException

    RuntimeException

    一些常见的运行时异常,一些常见的运行时异常,一些常见的运行时异常,

    Java 常见异常(Runtime Exception )详细介绍并总结

    主要介绍了Java 常见异常(Runtime Exception )详细介绍并相关资料,大家在开发Java 应用软件的时候经常会遇到各种异常这里帮大家整理了一部分,并解释如何解决,需要的朋友可以参考下

    hive on tez 常见报错问题收集

    4)java.lang.RuntimeException: java.lang.RuntimeException: Hive Runtime Error while closing operators: null 5)hive on tez 最终insert的表如果使用到union all 时会导致直接查询结果表数据为空的

    关于短路运算,关于短路运算

    NullPointerException大概是最常见的RuntimeException

    开新线程引发的常见3个异常

    开一个新线程,引起的异常。1. ANR: application not responding 2.android.view.ViewRoot$...3.java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()

    毕业就业-刷题库Java面试题大全(2021年-2022年).rar

    10. 常见的 RuntimeException 有哪些? 11. Java常见异常有哪些 四、并发编程面试题 1、基础知识 2、并发理论 3、并发关键字 4、Lock体系 5、并发容器 6、线程池 7、原子操作类 8、并发工具 未完待续

    Java异常处理.md

    常见的异常类包括Exception和RuntimeException。 为了处理异常,我们使用try-catch-finally语句块。在try块中编写可能抛出异常的代码,然后使用一个或多个catch块来捕获并处理这些异常。finally块用于执行无论是否...

    短信猫西门子TC35测试

    代码贴完了,下面告诉遇到的常见问题,并且是如何解决的: 1、如果报了如下错误: Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/log4j/Logger 那是因为没有把log4j-1.2.13.jar倒入到工程...

    Laravel中常见的错误与解决方法小结

    一、报错: 「Can’t swap PDO instance while within transaction」 通过查询 Laravel 源... throw new RuntimeException(" Can't swap PDO instance while within transaction. "); } $this->pdo = $pdo; retu

    JSTL详细标签库介绍

    首步我们一般在程序中先处理我们完成异常处理的类,完成异常处理的功能,因为可能除数为0是会出现异常,我们查找java.lang包中各个Exception类,发现RuntimeException类集合中的ArithmeticException可以处理运算异常...

    ssh(structs,spring,hibernate)框架中的上传下载

    Struts+Spring+Hibernate实现上传下载    本文将围绕SSH文件上传下载的主题,向您详细讲述如何开发基于SSH的Web程序。SSH各框架的均为当前最新版本:  •Struts 1.2  •Spring 1.2.5  •Hibernate 3.0 ...

Global site tag (gtag.js) - Google Analytics