当前位置: 首页 > 知识库问答 >
问题:

我能用一个catch捕获多个try语句吗?在爪哇

晋俊贤
2023-03-14

我正在做一个3D阵列项目,我需要测试一个细胞周围的每个细胞。但是,如果单元位于数组的边缘,则在数组之外测试单元将抛出越界异常。我想用catch语句来解决这个问题,但是编写一个try-and-catch来测试每个块需要非常大量的代码(3D数组中一个单元周围有8个单元)。有没有一种方法可以用一次捕捉多次“尝试”,然后继续它停止的地方?例如,如果tester方法测试一个越界单元格,我需要它不仅捕获,而且继续测试其他单元格。

共有3个答案

羊舌新荣
2023-03-14

或者,您可以放置一个if语句,检查您是否仍然在边界内,如果是,则访问单元格,否则不访问。

公冶经纶
2023-03-14

另一种解决方案是在需要测试的细胞周围放置一层保护细胞。只测试实际单元的邻居,但边缘单元将看到保护单元,而不是获得越界异常。

董胡非
2023-03-14

我只能猜测:你的代码可能有一大堆不同的循环,但是每个循环的核心都非常相似。只要在每个循环中使用相同的方法:

for ... x ...
  do(x);

for ... x ...
  do(x);

for ... x ...
  do(x);

// ...

void do(... x)
{
   try
   {
      // code here
   }
   catch ...
   // ...
}

另外,请注意,您不应该通过捕获异常来实现边界内的检查。这是非常糟糕的设计。确保你的数组访问总是有限制的。如果循环条件本身无法达到该目标(例如,因为数组不是一个统一的网格),请进一步添加If语句。

 类似资料:
  • 问题内容: 在Java中,我想做这样的事情: …代替: 有什么办法吗? 问题答案: 从Java 7开始,这已经成为可能。多捕获块的语法为: 但是请记住,如果所有异常都属于同一类层次结构,则可以简单地捕获该基本异常类型。 还要注意,如果从ExceptionA直接或间接继承了ExceptionB,则不能在同一块中同时捕获ExceptionA和ExceptionB。编译器会抱怨:

  • 本文向大家介绍我们可以在Java中的另一个try catch块中声明一个try catch块吗?,包括了我们可以在Java中的另一个try catch块中声明一个try catch块吗?的使用技巧和注意事项,需要的朋友参考一下 是的,我们可以 在另一个try-catch块中声明一个try-catch块,这称为嵌套try-catch块。 嵌套的尝试捕获块 如果一个内部的try statemen牛逼没

  • 本文向大家介绍一个try块在Java中可以有多个catch块吗?,包括了一个try块在Java中可以有多个catch块吗?的使用技巧和注意事项,需要的朋友参考一下 是的,单个try块可以有多个catch块。 示例 以下Java程序包含一个数字数组(显示)。从用户那里,它接受此数组中的两个位置,然后将第一个位置的数字除以第二个位置的数字。 输入值时- 如果选择的位置不在显示的数组中,则抛出Array

  • 有什么办法可以做到这一点吗? 我想我可以使用scanner来代替它,但是我只是好奇是否有办法在捕获异常后重复try语句。

  • 在实际开发中,根据 try catch 语句的执行过程,try 语句块和 catch 语句块有可能不被完全执行,而有些处理代码则要求必须执行。例如,程序在 try 块里打开了一些物理资源(如数据库连接、网络连接和磁盘文件等),这些物理资源都必须显式回收。 Java的垃圾回收机制不会回收任何物理资源,垃圾回收机制只回收堆内存中对象所占用的内存。 所以为了确保一定能回收 try 块中打开的物理资源,异

  • 我刚刚开始用java编写一个21点游戏。我试图让程序要求用户再次输入,如果他们输入的现金不是一个有效的整数。我看到许多带有catch的try语句示例,但没有一个是有效的。程序给出的错误InputMismatchException无法解析为类型。我遵循的一个线程就是这个,我有完全相同的代码,只是变量名不同。给你。Java输入不匹配异常 这是我的密码: 任何关于为什么我几乎精确的代码不起作用的帮助都将