关于try...catch里面input出现死循环
出现死循环:
private static double divede() {
Scanner input=new Scanner(System.in);
while (true){
try {
System.out.println("请录入第一个数");
int num1=input.nextInt();
System.out.println("请录入第二个数");
int num2=input.nextInt();
if(num2==0)
throw new ArithmeticException("除数不能为零");
//由于这个异常没有被catch住,因此除数为零的时候直接结束
return num1/num2;
} catch (InputMismatchException e) {
System.out.println("输入不合法,请重新录入");
input.next();
/*不加这一行的话数据缓冲区内上次输入的异常还在
并没有清除,这时继续异常
就又catch到exception,还是错误
于是这个过程就一直重复下去了
需要加这一行清除抓到的exception*/
}
}
}
也可以将input的定义放在try里面
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?