A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 周金帅 初级黑马   /  2012-5-30 16:38  /  2288 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

出现RuntimeException,程序就自动报错停止了,那么在代码中再写出这种异常有什么意义呢?即使代码没有,也会自动停止吧!

7 个回复

正序浏览
小手一抖 金币到手
回复 使用道具 举报
袁野 黑马帝 2012-5-30 19:05:38
7#
运行时期异常就是在运行的时候出现错误,跟简单的说就是需要你该写代码的
回复 使用道具 举报
Java 对异常的出来就是为了防止程序在运行的时候因而异常而崩溃,通过try...catch来抓捕异常,就可以对这个异常进行处理。RuntimeException 是那些可能在 Java 虚拟机正常运行期间抛出的异常的超类, 有很多的可能在执行期间抛出异常的子类。比如被0整除、数组越界等都是运行时的异常,需要做处理,不然就会使得程序崩溃。我在这里举个例子方便理解:
  1. public class TestRuntimeException {
  2.         public static void main(String[] args) {
  3.                 System.out.println(division(10,2));
  4.                 System.out.println(division(10,0));
  5.                 System.out.println(division(10,5));
  6.         }
  7.         public static int division(int x,int y)
  8.         {
  9.                 int retVal=0;
  10.                 try
  11.                 {
  12.                         retVal= x/y;
  13.                 }
  14.                 catch(ArithmeticException e)
  15.                 {
  16.                         System.out.println("被除数是0");
  17.                 }
  18.                 return retVal;
  19.         }               
  20. }
复制代码
如果不处理异常的话,程序就会因为division(10,0)而产生异常,程序就会停止,那么用了异常则程序照常往下进行,对于异常则根据catch代码块中的处理方式来处理。
回复 使用道具 举报
周金帅 发表于 2012-5-30 17:01
RuntimeException本来就必须使程序停止,从而让人去修改的吧?非运行时异常则不会停止程序。 ...

谁说RuntimeException发生后程序就停了?你处理它嘛。。。他不处理他肯定就挂了
  1. class RuntimeExceptionDemo
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 try
  6.                 {
  7.                         int num = 4/0;
  8.                 }
  9.                 catch (ArithmeticException e)
  10.                 {
  11.                         System.out.println("catch");
  12.                 }
  13.                 finally
  14.                 {
  15.                         System.out.println("finally");
  16.                 }
  17.                 System.out.println("over");
  18.         }
  19. }
复制代码
回复 使用道具 举报
丰亚彬 发表于 2012-5-30 16:42
你如果代码处理了程序就不会停止了,你如果没处理让虚拟机抓到了那程序就挂了~~~~~ ...

RuntimeException本来就必须使程序停止,从而让人去修改的吧?非运行时异常则不会停止程序。
回复 使用道具 举报
是会自动停止。但是你在catch中可是处理这个异常的。
现在可能你目前学到的就是把在个异常通过文字的形式打印在控制台上。

但是在以后,你在实际开发项目的时候,你在catch当中就不止是打印错误信息了。
有可能是用户在对数据操作失败的时候,你让程序停下来的同时,还可以在catch当中做一些对操作失败后的默认的处理。
回复 使用道具 举报
你如果代码处理了程序就不会停止了,你如果没处理让虚拟机抓到了那程序就挂了~~~~~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马