我有一些代码,包括检查用户输入,看看输入是字符串还是int,并将根据结果执行不同的代码。我使用integer.ParseInt来确定用户输入是否是整数,如果不是,则抛出NumberFormatException。
import java.io.*;
import java.util.*;
public class Datafile{
private static Scanner input = new Scanner(System.in);
public static void main(String[] args) throws IOException {
BufferedWriter bw = new BufferedWriter(new FileWriter("C:\\Users\\Kence\\workspace\\Java 8 - Beyond the Basics - Working Files\\Practice Programs\\src\\Practice Data Edited",true));
String data = null;
boolean end = false;
boolean cont = true;
String dataEntered = null;
int menuChoice = printMenu();
while(!end){
switch(menuChoice){
case 1:
System.out.println("Please enter a line of data or press 0 to exit back to the main menu");
dataEntered = input.nextLine();
try {
if(Integer.parseInt(dataEntered) == 0){
break;
}
} catch (Exception e) {
data += dataEntered + "\n";
while(cont){
System.out.println("Data entered.Please enter the next line of data or press quit to exit back to the main menu.");
dataEntered = input.nextLine();
if(Integer.parseInt(dataEntered) == 0){
cont = false;
break;
}else{
data+= dataEntered;
System.out.println("Current data entered is " + dataEntered);
}
}
}
break;
case 2:
System.out.println("2 Entered");
break;
case 3:
System.out.println("3 Entered");
break;
case 4:
System.out.println("4 Entered");
break;
}//End of switch statement
menuChoice = printMenu();
}
input.close();
}//End of main
public static void printStars(){
for(int i = 0; i<66 ; i++){
System.out.print("*");
}
System.out.println();
}
public static int printMenu(){
printStars();
System.out.println("System Started");
printStars();
System.out.println("Enter 1 to input a new line of data");
System.out.println("Enter 2 to list all data");
System.out.println("Enter 3 to save existing data");
System.out.println("Enter 4 to load data");
printStars();
return Integer.parseInt(input.nextLine());
}
}
异常通常只应在特殊情况下使用(参见名称来自哪里?)。它们在紧循环中尤其糟糕,因为执行开销很高。有无效的用户输入似乎是一个相当常见的情况,所以我会寻找另一种方法。看看这个答案。
但这一切都取决于语言。例如,在Python中,try/catch是事实上的编码方式(duck-typing)。
问题内容: 在一个教程中,我发现 您的代码无法处理Unchecked Exception, 即我们不能使用块,示例是类似的异常,但是可以使用try / catch块处理这些异常。我认为我不清楚这个概念! 我也认为throw关键字只能与block.can一起使用吗? 问题答案: 已检查和未检查的异常之间的唯一区别是,必须使用捕获或在方法签名中声明 已 检查的异常,而对于未检查的异常,这是可选的。 您
无法使用由try和catch块包围的@controlleradvice和@afterthollow when方法。 我可以一步一步解释 }
EDIT应该返回true或false,但它的抛出错误
在我的脚本中,有时会出现服务器、连接、配置或API问题,因此我实现了一个try-catch块来正确捕获异常并跳过它们。 ...但我的问题没有用这个解决方案解决,因为(引发问题的)元素不是问题本身。所以基本上,我的问题是,是否有任何方法可以捕获错误并继续您离开的地方:不跳过错误并转到下一个元素,而是在foreach循环中重复当前的迭代。 显然,继续和打破是行不通的! ...并且当catch部分捕获到
我一直在研究如何改变c#方法执行的行为,特别是当出现异常以支持: 重试/继续:能够再次尝试同一语句并在成功后继续跳过/继续:移动到下一个语句并继续执行 我读过很多回复,说这是糟糕的编码实践,但这是针对代码转换器的,它从支持此功能的语言转换数百万行代码。我需要在功能上保持一致。
本文向大家介绍SQL Server 2005 中使用 Try Catch 处理异常,包括了SQL Server 2005 中使用 Try Catch 处理异常的使用技巧和注意事项,需要的朋友参考一下 TRY...CATCH是Sql Server 2005/2008令人印象深刻的新特性.提高了开发人员异常处理能力.没有理由不尝试一下Try.. Catch功能. * TRY 块 - 包含可能产生异常的