java 异常之Exception与RuntimeException的区别
2016-09-12 11:43
666 查看
运行java程序的时候我们会经常遇到空指针异常也就是NullPointerException。按照正常的javaException处理过程来说,我们需要进行try{}catch{}处理。然而我们没有进行try{}catch{}处理,程序也能正常运行。这是为什么呢? 回答上面的问题就需要理解**Exception**与**RuntimeException**的区别。 我们来看下面的例子:
public class JavaException { public static void RuntimeException(String str) { if(str.equals("Exception")) { System.out.println("异常"); } } public static void main(String args[]) { String str=null; RuntimeException(str); } }
上面的程序的可以通过编译,但是当执行的时候会报空指针异常:
Exception in thread "main" java.lang.NullPointerException at JavaException.RuntimeException(JavaException.java:6) at JavaException.main(JavaException.java:15)
我们把上面的代码修改一下,我们在会出现空指针异常的地方try{}catch{}一下,并且抛出Exception异常。
这时候我们会发现,程序不能通过编译了:
必须对Exception异常做try{}catch{}处理才行:
这样就能顺利通过编译了。
通过上面的对比就能发现NullPointerException(空指针异常)可以不用try{}catch{},而Exception异常必须进行try{}catch{}处理。虽然NullPointerException不需要try{}catch{},但是当出现NullPointerException是程序任然会中断执行。所以最好还是进行try{}catch{}处理。
NullPointerException类的继承关系:
从上图我们可以发现NullPointerException是RuntimeException的子类,那么这就清楚了Exception和RuntimeException的概念: Exception:在程序中必须使用try...catch进行处理。 RuntimeException:可以不使用try...catch进行处理,但是如果有异常产生,则异常将由JVM进行处理。 常见的RuntimeException:
ArithmeticException(算数运算异常)
NullPointerException(空指针异常)
IndexOutOfBoundsException(数组越界)
……
相关文章推荐
- 详解Java异常Throwable、Error、Exception、RuntimeException的区别
- Java常见异常(Runtime Exception )小结
- Java--异常与错误区别 Error and Exception
- Java常见异常(Runtime Exception )小结
- 谈谈Java:Checked Exception与Runtime Exception 的区别
- Java常见异常(Runtime Exception )小结
- Java_error与Exception的区别,以及受控异常与运行时异常的区别
- Applet虽签名,但是Runtime.getRuntime().exec(cmd)异常:java.security.AccessControlException: access deni
- Java常见异常(Runtime Exception )小结
- Java基教--异常与错误区别 Error and Exception
- 谈谈Java:Checked Exception与Runtime Exception 的区别
- java.lang.Excetion,java.lang.RuntimeException,java.lang.Error有什么区别?
- struts 2.2.1做例子时报异常:java.lang.RuntimeException: java.lang.reflect.InvocationTargetException 解决
- 请描述Java中异常处理机制的简单原理和应用,并说明Error与Exception有什么区别?
- Struts2上传文件异常: java.lang.RuntimeException: Unable to load bean org.apache.struts2.dispatcher.multipart.MultiPartRequest (jakarta
- 请描述Java中异常处理机制的简单原理和应用,并说明Error与Exception有什么区别?
- tomcat抛出异常:java.lang.RuntimeException: Cannot register non aspect
- 【郭林专刊】Java常见异常(Runtime Exception )小结 .
- Java中异常处理机制的简单原理和应用,并说明Error与Exception有什么区别?
- java.lang.RuntimeException: Unable to instantiate activity ComponentInfo异常解决