Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 有没有一种方法可以让异常每次都以相同的方式处理,而不会跳过很多代码_Java_Try Catch_Indexoutofboundsexception - Fatal编程技术网

Java 有没有一种方法可以让异常每次都以相同的方式处理,而不会跳过很多代码

Java 有没有一种方法可以让异常每次都以相同的方式处理,而不会跳过很多代码,java,try-catch,indexoutofboundsexception,Java,Try Catch,Indexoutofboundsexception,我正在编写一个简单的生命游戏代码,我必须使用数千个try-catch语句来处理越界异常,并使用空catch语句来处理ArrayIndexOutOfBoundsException。有没有办法告诉程序以相同的方式处理所有一个异常?cpu上有数千条try-catch语句很难吗?数千条 好的,关于try/catch,您需要了解的事情:它们对CPU来说非常非常昂贵,它们会让您的程序疯狂地慢下来,并且它们只应该用于可能出现故障的情况,如果出现故障,您需要做一些特殊处理 你的设计肯定有问题,但如果没有代码示例

我正在编写一个简单的生命游戏代码,我必须使用数千个try-catch语句来处理越界异常,并使用空catch语句来处理ArrayIndexOutOfBoundsException。有没有办法告诉程序以相同的方式处理所有一个异常?cpu上有数千条try-catch语句很难吗?

数千条

好的,关于
try/catch
,您需要了解的事情:它们对CPU来说非常非常昂贵,它们会让您的程序疯狂地慢下来,并且它们只应该用于可能出现故障的情况,如果出现故障,您需要做一些特殊处理

你的设计肯定有问题,但如果没有代码示例,我猜你在迭代数组时没有检查数组的大小,这真是太糟糕了

在Java中,我们可以执行以下操作:

for(int i = 0; i < arr.length; i++) {}
这些保证您永远不会超过数组的边界(只要您的程序没有在循环中修改数组)


在迭代固定长度数组的过程中,您永远不应该看到
ArrayIndexOutOfBounds
异常。你知道数组的长度,为什么不使用它呢?

千个

好的,关于
try/catch
,您需要了解的事情:它们对CPU来说非常非常昂贵,它们会让您的程序疯狂地慢下来,并且它们只应该用于可能出现故障的情况,如果出现故障,您需要做一些特殊处理

你的设计肯定有问题,但如果没有代码示例,我猜你在迭代数组时没有检查数组的大小,这真是太糟糕了

在Java中,我们可以执行以下操作:

for(int i = 0; i < arr.length; i++) {}
这些保证您永远不会超过数组的边界(只要您的程序没有在循环中修改数组)


在迭代固定长度数组的过程中,您永远不应该看到
ArrayIndexOutOfBounds
异常。你知道数组的长度,为什么不使用它呢?

千个

好的,关于
try/catch
,您需要了解的事情:它们对CPU来说非常非常昂贵,它们会让您的程序疯狂地慢下来,并且它们只应该用于可能出现故障的情况,如果出现故障,您需要做一些特殊处理

你的设计肯定有问题,但如果没有代码示例,我猜你在迭代数组时没有检查数组的大小,这真是太糟糕了

在Java中,我们可以执行以下操作:

for(int i = 0; i < arr.length; i++) {}
这些保证您永远不会超过数组的边界(只要您的程序没有在循环中修改数组)


在迭代固定长度数组的过程中,您永远不应该看到
ArrayIndexOutOfBounds
异常。你知道数组的长度,为什么不使用它呢?

千个

好的,关于
try/catch
,您需要了解的事情:它们对CPU来说非常非常昂贵,它们会让您的程序疯狂地慢下来,并且它们只应该用于可能出现故障的情况,如果出现故障,您需要做一些特殊处理

你的设计肯定有问题,但如果没有代码示例,我猜你在迭代数组时没有检查数组的大小,这真是太糟糕了

在Java中,我们可以执行以下操作:

for(int i = 0; i < arr.length; i++) {}
这些保证您永远不会超过数组的边界(只要您的程序没有在循环中修改数组)


在迭代固定长度数组的过程中,您永远不应该看到
ArrayIndexOutOfBounds
异常。您知道数组的长度,为什么不使用它?

您不应该捕获ArrayIndexOutOfBoundsException。它不需要捕获,并且有适当的方法可以避免在第一时间抛出它(例如检查数组索引边界)。您不应该捕获ArrayIndexOutOfBoundsException。它不需要捕获,并且有适当的方法可以避免在第一时间抛出它(例如检查数组索引边界)。您不应该捕获ArrayIndexOutOfBoundsException。它不需要捕获,并且有适当的方法可以避免在第一时间抛出它(例如检查数组索引边界)。您不应该捕获ArrayIndexOutOfBoundsException。它不需要捕获,并且有一些适当的方法可以避免在第一时间抛出它(例如检查数组索引边界)。您确定它们对CPU非常(非常)昂贵吗?我的印象是,在抛出异常之前,它们实际上是非常轻量级的,即使这样,它们也不会比
if
语句更昂贵。我的印象是,正如你所说的,
try
本身的开销很小,但是上面发布的数千次try/catch加起来就足够了。而且,如果抛出任何一个越界异常,抛出异常的代价非常高昂,因为Java是一个JIT虚拟机:每次都以相同的方式运行时,代码运行得最快。作为一名程序员,“尽可能避免try/catch”这条笼统的语句并不是一个坏建议,一般来说,它会导致性能损失。@iamnotmaynard抛出和捕获异常并不特别昂贵。使用堆栈跟踪构造异常对象非常昂贵。您确定它们对CPU非常(非常)昂贵吗?我的印象是,在抛出异常之前,它们实际上是非常轻量级的,即使这样,它们也不是真正轻量级的