我已经获得了一个名为Fibonacci Number的程序,当程序的输入为负整数值时,没有输出。我尝试通过添加用户定义的异常和异常处理程序来修改它,以便在输入为负整数值时可以采取适当的操作。我仍然无法理解异常如何工作以及如何修改此程序。
Use as below in your google map script
//content = anything you like to show
var content = '<div id="content" align="center">'+
'<h1 id="firstHeading" class="firstHeading" style="margin:0;color:#ff6600;">Your Title</h1>'+
'<p style="color:#0d6585;font-weight:700;">Your Description'+
'</p>'+
'</div>';
var infowindow = new google.maps.InfoWindow({
content: content,
maxWidth: 300 //your desired width
});
答案 0 :(得分:0)
我会用外行的话来解释这个问题,因为你是Java的新手。这就是你如何修改你的程序来计算斐波纳契数。首先,您说要使用异常来控制程序的行为,以便让用户知道出现了问题。抛出异常时,该异常将传播到调用者层次结构,直到它被一个显式异常处理程序捕获,如果找不到捕获它的处理程序,程序就会退出。
在这种情况下,您希望抛出一个错误,以便下面的应用程序代码在异常处理程序捕获之前不会执行。
if (N < 0) {
throw new IllegalArgumentException("Negative numbers are not allowed");
}
这会抛出一个IllegalArgumentException,并带有一条自定义消息,如果需要,可以显示给用户。
现在我说这个异常必须在异常处理程序中捕获。由于您抛出此异常,因此不会执行紧随其后的代码。换句话说,如果您将代码段置于上面的代码之上,则不会执行以下代码。
System.out.println(N);
for (int i = 1; i <= N; i++)
System.out.println(i + ": " + fib(i));
现在您需要一个异常处理程序,否则您的程序将过早退出。 这是将它包含在try catch处理程序中的方法,
int N = Integer.parseInt(args[0]);
try {
if (N < 0) {
throw new IllegalArgumentException("Negative numbers are not allowed");
}
System.out.println(N);
for (int i = 1; i <= N; i++) {
System.out.println(i + ": " + fib(i));
}
} catch (IllegalArgumentException e) {
System.out.println(e.getMessage());
}
有了这个,当用户输入一个负数时,程序将在我们创建的异常中显示该消息。当输入为负数时,您可能希望通过引发异常来执行其他操作,但您应该能够理解它是如何完成的。您可能还希望使用自定义异常,而不是Java平台提供的标准异常。有很多tutorials用于学习自定义异常处理。