我的程序接受整数输入,然后是一个更大的整数输入,然后是一个字符串。
“输入一个数字:”
“请输入一个更大的数字:”
“输入字符串:”
我试图使用try/catch来捕获输入字符串而不是整数的情况。我有点让代码正常工作,但在执行错误消息后,它跳过下一个int输入问题,直接进入“输入字符串”
我假设我需要一个while循环,但是我很难弄清楚它到底放在哪里,以及使用什么参数。简单地说,(我想)我需要:while(输入!=string)。我只是不知道怎么做。
try {
System.out.println("Enter a number: ");
int start = myscanner.nextInt();
System.out.println("Enter a bigger number: ");
int end = myscanner.nextInt();
if (start > end) {
System.out.println("Error: Start should be smaller.");
} else {
int result = sumInt(start, end);
System.out.println("Result: " + result);
}
} catch (InputMismatchException exception) {
System.out.println("Enter a number, not a string.");
}
```````````````````````````````````````````````````````````````````````````
import java.util.Scanner;
public class Main
{
public static void main(String[] args) {
try{
Scanner myscanner = new Scanner(System.in);
int option =1;
do{
System.out.println("Enter a number: ");
String start = myscanner.next();
boolean sflag= isInteger(start);
if(!sflag )
{System.out.println("Error: value not Integer."); continue;}
System.out.println("Enter a bigger number: ");
String end = myscanner.next();
boolean eflag= isInteger(end);
if( !eflag)
{System.out.println("Error: value not Integer."); continue;}
if ( Integer.parseInt(start) > Integer.parseInt( end)) {
System.out.println("Error: Start should be smaller.");
} else {
int result = sumInt( Integer.parseInt( start),
Integer.parseInt( end));
System.out.println("Result: " + result);
System.out.println("select following option");
System.out.println("1. continue");
System.out.println("2.exit");
option = myscanner.nextInt();
//isInteger(option);
}
}while(option != 2);
}catch(Exception e){
System.out.println(e);
}
}
public static boolean isInteger( String input ) {
try {
Integer.parseInt( input );
return true;
}
catch( Exception e ) {
return false;
}
}
public static Integer sumInt(int start, int end){
return start + end;
}
}
我的项目由一个小图标组成,它在一个尺寸为25×20的网格上移动。我知道我可以用几个if/else块轻松地完成这项工作,但我想了解更多关于错误处理的知识。 我当时想的是使用try-catch,但它根本不会捕获数组索引越界异常或任何:它不会返回“error”或位置,因此它永远不会进入catch块。 我在想这样的伪代码: 实际代码:
我的sp中有一个try catch块,try中只有一个insert语句。捕捉检查错误代码,如果是pk违规,如果是则做更新。但是有时我会得到“当前事务不能被提交,不能支持写入日志文件的操作。回滚事务。 在批处理结束时检测到不可提交的事务。事务被回滚了“,所以我添加了xact_abort,但后来我不断得到”EXECUTE之后的事务计数表明 BEGIN 和 COMMIT 语句的数量不匹配“,我发现了这一
问题内容: 我有一个看起来像这样的循环: 这是方法的主要内容,其唯一目的是返回浮点数数组。我希望此方法在出现错误时返回,因此我将循环放在一个块中,如下所示: 但是后来我也想到将块放入循环中,如下所示: 是否出于某种原因(无论是性能还是其他原因)偏爱一个? 编辑: 共识似乎是将循环放在try / catch中(可能在其自己的方法中)更干净。但是,仍然存在关于哪个更快的争论。有人可以测试一下并返回统一
我在使用这个try/catk语句时遇到了麻烦。我试图用它抛出一条错误消息,上面写着,“请输入一个整数!”如果用户输入一个字母。我使用的第一个成功了,但是它最终需要两行用户输入,而不仅仅是一行,所以它基本上跳过了一个应该问的问题。在那之后,其他的都不起作用,它们只是被完全跳过。我还需要对用户输入做同样的事情,如果用户在字母应该在的地方输入整数,它会抛出一条错误消息,上面写着“请输入字符串!”。我知道
问题内容: 我正在使用Python,每当必须验证函数输入时,我都认为输入有效,然后捕获了错误。 就我而言,我有一个通用类,用于一些不同的事情,其中之一是加法。它既作为类又作为a起作用,因此当我向标量添加标量时,应将该常数添加到每个单独的组件中。和加法需要按组件进行加法。 这段代码被用于光线追踪器,因此任何速度提升都很棒。 这是我班的简化版: 我目前正在使用该方法。有人知道更快的方法吗? 编辑:
我希望程序在捕获异常时重新执行 while 循环 - 异常正在接收文本输入。相反,它继续使用下面的代码进行一段时间循环,我希望它再次要求用户输入。 输出: