IndexOutOf下标越界几种解决方案
【摘要】 目录python下标越界list index out of rangeJava下标越界java.lang.ArrayIndexOutOfBoundsExceptionJava String index out of rangeC语言数组下标越界out terminatedC++数组下标越界不报错C#数组下标越界System.IndexOutOfRangeExceptionPHP数组下标越界...
目录
python下标越界list index out of range
Java下标越界java.lang.ArrayIndexOutOfBoundsException
Java String index out of range
C#数组下标越界System.IndexOutOfRangeException
PHP数组下标越界Notice: Undefined offset:1
python下标越界list index out of range
python里说的是list越界,其实也就是列表,格式是【arr=["1","2","3"]】这样的,如果输出的时候超出下标数量就会报这个异常。来我们截图看一下。
还是很明显的。
Java下标越界java.lang.ArrayIndexOutOfBoundsException
无论是数组还是集合列表在下标越界的时候都会报这个异常,只是后续提示的内容有所区别,我们来看一下:
String [] arr=new String[10];
System.out.println(arr[11]);
ArrayList<Integer> arr=new ArrayList<Integer>();
System.out.println(arr.get(11));
Java String index out of range
Java字符串超出索引的范围,这里的out of是【越出…之外】的意思,range就是【范围】,超出范围肯定会报错的。
C语言数组下标越界out terminated
#include <stdio.h>
int main() {
int a[10]={0};
a[10] = 0;
return 0;
}
C语言的下标越界报错有些不同。
*** stack smashing detected ***: ./970872.out terminated
可以看到包的错不是index out of,是out terminated,也就是超出终止范围。
画一个小爱心,祝大家都能顺利解决各种bug。
C++数组下标越界不报错
C++比较特殊,下标越界的时候啥也不报,这个挺难受的。
#include <stdio.h>
#include <iostream>
#include <math.h>
int main() {
using namespace std;
char a[]={'1','2'};
cout << a[5]<<endl;
return 0;
}
很明显的上列代码是有越界的,执行的时候啥都没有,不报错。
linux平台或者g++编译器对下标越界问题有自己的处理,导致程序不挂。而Visual c++编译器对下标越界不进行处理,程序挂掉。
来个好看一些的心来平绪一下心情吧:
C#数组下标越界System.IndexOutOfRangeException
C#的越界和Java的差不多,都会提示出来,直接说明是怎么回事。有中文提示还是挺方便的。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace demo20221008
{
class Program
{
static void Main(string[] args)
{
int[] arr = new int[5];
Console.WriteLine(arr[6]);
}
}
}
PHP数组下标越界Notice: Undefined offset:1
这是PHP的数组下标越界,一看就明白,未定义的开端,也就是没有这个开始。那肯定就是越界了。
总结
其它小众的语言我就不举例了,我们挨个看了看常用的语言数组下标越界的情况,从而能在以后的异常中快速定位问题所在快速解决bug。
异常是很常见的,一个不会解决bug的程序员是很难找到成就感的,当你突破一个个bug后那种自豪感还是很棒的。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
评论(0)