美文网首页
常见的RuntimeException

常见的RuntimeException

作者: 簏人 | 来源:发表于2016-08-02 16:04 被阅读0次

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:

1)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;

}

2)NumberFormatException:继承IllegalArgumentException,字符串转换为数字时。

比如:

int i= Integer.parseInt("ab3");

3)ArrayIndexOutOfBoundsException:数组越界

比如:

 int[] a=new int[3];

 int b=a[3];

4)StringIndexOutOfBoundsException:字符串越界

比如 :

String s="hello"; 

char c=s.charAt(6);

5)ClassCastException:类型转换错误

比如 :

Object obj=new Object(); 

String s=(String)obj;

6)UnsupportedOperationException:该操作不被支持。

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

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

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

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

相关文章

  • 常见的RuntimeException

    Java中采用了强制异常捕捉机制,这样一方面提高了程序的可靠性,不过有时候也带来一些麻烦。比如: int i= I...

  • 32、Java中常见的异常

    异常类型常见的异常RuntimeException(UncheckException)NullPointerExc...

  • 常见的几种RuntimeException

    转载来源:http://blog.csdn.net/qq635785620/article/details/778...

  • 异常

    1.常见的RuntimeException: 空指针异常类:NullPointerException 类型强制转换...

  • java 面试题整理

    1.简述下线程池 2.常见的RuntimeException异常 扩展: Exception 如果把基本异常类型间...

  • 异常处理

    1.常见的异常类型 Exception 异常类的基类RuntimeException 运行时异常类的基类Arit...

  • RuntimeException

    RuntimeException 和 Exception 相同 RuntimeException 继承与 Exce...

  • Java异常体系

    Error和Exception的区别 RuntimeException和非RuntimeException 常用异...

  • RuntimeException

    Exception中有一个特殊的子类异常RuntimeException 运行时异常。 如果在函数内容抛出该异常或...

  • 关于RuntimeException

    异常分为未检查异常(RuntimeException)和已检查异常(非RuntimeException)。有人说R...

网友评论

      本文标题:常见的RuntimeException

      本文链接:https://www.haomeiwen.com/subject/aggfsttx.html