请编写一个捕获异常的小程序:计算二个数的商,分别捕获数组越界、数据格式不 正确、除数为零三种异常。
时间: 2023-09-21 15:06:14 浏览: 128
### 回答1:
下面是一个简单的Python程序,用于计算两个数的商并捕获三种异常:
```python
try:
num1 = int(input("请输入被除数:"))
num2 = int(input("请输入除数:"))
result = num1 / num2
print("两数相除的结果为:", result)
except ValueError:
print("输入的数据格式不正确!")
except ZeroDivisionError:
print("除数不能为零!")
except IndexError:
print("数组越界异常!")
```
程序中,我们使用了 `try-except` 结构来捕获可能出现的异常。首先,我们尝试将用户输入的数字转换为整数类型,如果用户输入的不是数字,就会抛出 `ValueError` 异常。如果除数为零,则会抛出 `ZeroDivisionError` 异常。而如果我们尝试访问数组中不存在的元素,就会抛出 `IndexError` 异常。在每个 `except` 语句块中,我们都打印出相应的错误信息。
### 回答2:
下面是一个捕获异常的小程序,用于计算两个数的商:
```python
try:
num1 = int(input("请输入第一个数: "))
num2 = int(input("请输入第二个数: "))
result = num1 / num2
print(f"计算结果: {result}")
except IndexError:
print("数组越界异常:请确认输入的是数字而不是其他类型的数据")
except ValueError:
print("数据格式不正确异常:请确认输入的是数字而不是其他类型的数据")
except ZeroDivisionError:
print("除数为零异常:请确认除数不为零")
except Exception as e:
print(f"其他异常:{e}")
```
以上代码使用了`try-except`语句,捕获了三种异常:`IndexError`、`ValueError`和`ZeroDivisionError`。如果用户输入的不是数字,将会抛出`ValueError`异常;如果用户输入的除数为零,将会抛出`ZeroDivisionError`异常;如果用户输入的是其他类型的数据,将会抛出`IndexError`异常。如果捕获到以上异常,程序会打印出相应的错误提示信息。如果捕获到其他异常,程序会打印出该异常的具体信息。
### 回答3:
下面是一个捕获异常的小程序,用于计算两个数的商并处理可能出现的数组越界、数据格式不正确、除数为零三种异常:
```
import java.util.InputMismatchException;
import java.util.Scanner;
public class ExceptionHandlingExample {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int numerator, denominator;
try {
System.out.print("请输入被除数:");
numerator = scanner.nextInt();
System.out.print("请输入除数:");
denominator = scanner.nextInt();
int result = getQuotient(numerator, denominator);
System.out.println("商:" + result);
} catch (InputMismatchException e) {
System.out.println("输入的数据格式不正确,请输入整数。");
} catch (ArithmeticException e) {
System.out.println("除数不能为零。");
} catch (Exception e) {
System.out.println("发生未知异常。");
} finally {
scanner.close();
}
}
public static int getQuotient(int numerator, int denominator) {
return numerator / denominator;
}
}
```
在上面的程序中,我们首先创建了一个`Scanner`对象来接收用户输入的被除数和除数。然后,我们使用`try-catch`语句块来捕获可能出现的异常。
在`try`块中,我们首先请求用户输入被除数和除数,并调用`getQuotient`方法计算它们的商。如果没有异常发生,我们将结果打印出来。如果发生了输入数据格式不正确的异常,会捕获`InputMismatchException`,并输出错误信息。如果发生了除数为零的异常,会捕获`ArithmeticException`,同样输出错误信息。如果发生了其他未知异常,会捕获`Exception`,并输出错误信息。
最后,在`finally`块中,我们关闭了`Scanner`对象,释放资源。
希望以上的回答能够帮助你!
阅读全文