v-bind例外
第1章:什么是例外?想象一下,您想编写一个计算程序。 首先,它运行良好,可以加,减,乘和除。 然后是一个问题:零除法又如何呢?
假设您的除法方法如下:
public double div(double a, double b)
{
return a/b;
}
你试试:
System.out.println("2.0 / 3.0 = " + div(2.0,3.0));
// 2.0 / 3.0 = 0.6666666666666666
System.out.println("6.0 / 2.0 = " + div(6.0,2.0));
// 6.0 / 2.0 = 3.0
System.out.println("1.0 / 0.0 = " + div(1.0,0.0));
// 1.0 / 0.0 = Infinity
您得到的答案是“无限”。
这个答案不是很令人满意,您希望它给出一个错误。
但是,只是做这样的事情
double d;
if(div(1.,0.) == Infinity) d = 1;
else d = div(1.,0.);
System.out.println("1.0 / 0.0 = " + c);
或这个
double c = (div(1.,0.) == Infinity) ? 1. : div(1.,0.);
System.out.println("1.0 / 0.0 = " + c);
将无法使用-编译器会告诉您Infinity无法解析 。
所以你会怎么做?
在许多编程语言(例如Java)中,该语言的创建者考虑了此类问题并找到了解决方案:异常。
应该返回值的函数总是可以抛出异常。 然后该功能终止,而没有完成其实际任务。
在这种情况下,它将看起来像这样:
public double div(double a, double b) throws Exception
{
if (b==0) throw new Exception();
return a/b;
}
现在,我们做了什么?
- 我们在方法头添加了“ throws Exception”。 这只是告诉编译器该方法可能会引发Exception。
- 我们在程序中添加了新行:
它检查b是否为零,如果为零,则抛出新的Exception。 然后,该函数停止并且不返回任何值。if (b==0) throw new Exception();
翻译自: https://bytes.com/topic/java/insights/750355-introduction-exceptions-ch-1-a
v-bind例外