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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李志祥 中级黑马   /  2012-4-5 23:32  /  1736 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 李志祥 于 2012-4-18 15:10 编辑

在看视频时候,winForm,练习二的时候里面老是讲的那个报错,没有听清楚,求解

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

3 个回复

倒序浏览
本帖最后由 张世豪 于 2012-4-6 00:27 编辑

那个是因为把if里的return注释了,在输入没有@符的非法email时,string数组的长度是1,只有一个str[0],不存在第二个索引str[1],所以报错。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
索引超出了数组界限的问题:是由于该数组中没有存在该索引的值,比如你存的口袋里有两块钱,你去买一个三块钱的东西时,你拿不出三块钱,这时你就糗大了。脸色变的很黄,和你图片中那黄色一样。
针对你程序来说:
你通过:textBox1.Text拿到一个字符串。
然后通过@分割这个字符串,如果你上面存在@时,你将分割与两部分或部分。
这时你通过判断它是否为两部分,这样的判断非理想处理。比如有一个二逼输入一个“123@234com”
那你分割出来就是:123,234com,但这样的邮箱地址并非是正确的。所以,你以后可能用上正则或其它判断等。

但是你程序为什么会出现异常呢?
因为你在判断成非法邮箱地址时,没有退出button1点击事件,这样程序继续执行。但它拿到的并没有两部分。比如用户输入:"11111,dkfk",那你分割出来就只有一部分:“11111,dkfk”。这样,数组中只有strs[0],并没有 str[1],这样程序很尴尬的。它伤不起,就发火。。。火烧VS就出现索引超出了数组界限。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
把return解注释了就行了,输入非法email时没返回。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马