黑马程序员技术交流社区

标题: 提示是未处理IndexOutOfRangeException(),想不通啊 [打印本页]

作者: 追影    时间: 2013-9-18 22:23
标题: 提示是未处理IndexOutOfRangeException(),想不通啊
本帖最后由 追影 于 2013-9-23 09:49 编辑
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;

  5. namespace 异常
  6. {
  7.     class Program
  8.     {
  9.         static void Main(string[] args)
  10.         {
  11.             int result = GetNumber(3);
  12.         }

  13.         static int GetNumber(int index)
  14.         {
  15.             int[] nums = { 300, 600, 900 };
  16.             if (index >= nums.Length)
  17.             {
  18.                 throw new IndexOutOfRangeException();//为什么不处理啊,想不通
  19.             }
  20.             return nums[index];

  21.         }
  22.     }
  23.    
  24. }
复制代码
纠结哦,为什么不处理,不是new了么

作者: 曹伟    时间: 2013-9-19 09:56
你在VS下按ctrl+F5,有提示错误啊
作者: lgh521911    时间: 2013-9-22 17:42
索引超出了界限

异常111.JPG (38.57 KB, 下载次数: 45)

异常111.JPG

作者: 七里香    时间: 2013-9-22 19:06
异常处理机制(try catch)不只会抛出异常还有在异常出现后程序该运行什么代码,是return,还是break神马的,而你只是把异常抛了出来并没有对异常进行任何处理,所以程序还是以不友好的方式抛出异常然后崩溃咯。嗯,大概就是这样,以上纯属个人猜测,如有错误,不要找我{:soso_e113:}
作者: 追影    时间: 2013-9-23 09:48
七里香 发表于 2013-9-22 19:06
异常处理机制(try catch)不只会抛出异常还有在异常出现后程序该运行什么代码,是return,还是break神马的 ...

感觉,抛异常这东西不好用,还不如直接MessageBox.Show(e.Message),所以我看一般还是不用抛异常的好.





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2