这种语法是最好的方法吗?
method 1:
input
method2():
method2: (input)
try
catch
return(method1())
method3: (input)
....
当抛出异常时你很少想要程序崩溃,所以最好有一个return语句,这样用户就可以为变量声明一个新的输入。我正在上课阅读课本,但不包括退课。否则,如果程序刚刚终止,没有返回,有一个try-catch似乎没有意义。
答案 0 :(得分:0)
如果一段代码处于授权位置以确切知道如何处理异常,它可以捕获它并执行任何操作。
如果不是,它应该抛出它以允许更高级别的代码处理它。有时需要包装这样的异常,以便将事物保持在与方法调用相同的抽象级别。
在顶级,如果没有代码可以处理异常,则由一个人来处理它。您记录异常并向用户道歉。
答案 1 :(得分:0)
可以在调用代码中捕获异常。
说你正在用方法
读取文件Data readFile(String filename) {
try {
// Open file here
} catch (Exception e) {
// something has happened but you caught it here itself.
// Caller of this method may not know that.
}
}
相反,如果您的方法抛出异常(预定义或您的自定义):
Data readFile(String filename) throws FileNotFoundException {
// Open file here. If file name wrong, it throws a FileNotFoundException
}
这次调用代码知道该方法可能会抛出异常,从而以它想要的方式处理它。
例如。
Data data = null;
while(data == null) {
try {
String f = /*Some code to read a string from input*/;
data = readFile(f);
} catch(Exception e) {
System.out.println("Unable to read. " + e);
}
}
当然,还有其他方法可以做到。
答案 2 :(得分:0)
您的语法只是易受攻击的事件,它很容易被恶意用户的重复输入引起stackoverflow,导致方法2中的异常。
这个怎么样:
method 1:
while
input
try
return method2(input)
catch
method2: (input)
return (some result)
method3: (input)
....