如何在 try catch 语句中重新请求输入

2024-03-09

string l = Console.ReadLine();

try
{
    int.Parse(l);
}
catch (FormatException)
{
    Console.WriteLine("Invalid input. Please enter 1, 2, or 3.");
}

正如你所看到的,我已经要求输入,但是如果用户输入非整数答案,例如字母“f”,catch 语句会捕获它,但随后再次抛出异常,因为变量“l”仍然等于“f”。帮助?


您可以使用int.TryParse http://msdn.microsoft.com/en-us/library/system.int32.tryparse.aspx而不是捕获异常。它返回解析是否成功,因此您可以循环检查它,直到输入有效,例如

int i;
bool valid = false;
do {
    Console.WriteLine("Enter an int: ");
    string input = Console.ReadLine();
    valid = int.TryParse(input, out i);
} while(! valid);

//use i
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 try catch 语句中重新请求输入 的相关文章

随机推荐

  • 如何将 jar、源代码和 Javadoc 添加到本地 Maven 存储库?

    我想添加最新版本的 JGoodies Forms 1 5 0 作为依赖项 但我在主存储库中找不到比 1 0 5 更新的任何内容 所以如果我理解正确 我可以做的下一个最好的事情要做的就是将其添加到我的本地存储库中 当我从网站下载它时 我得到一
  • 使用 React 进行变更检测

    我正在研究更改检测机制 并且在reactjs案例中遇到了一些麻烦 当反应组件中的 props 发生变化时 该组件将被 重新渲染 由于 diff 算法的原因 这并不完全正确 但想法就在这里 我知道当某物发生这种情况时 React 会浏览其内部
  • 如何让 Rails 为 ember.js 生成正确格式的 JSON?

    在 Ember 模型指南中http emberjs com guides models the rest adapter toc relationships http emberjs com guides models the rest a
  • DialogFragment 按钮被推出屏幕 API 24 及更高版本

    我正在定制DialogFragment显示可选择的数据列表 该列表太长 无法在不滚动的情况下显示在屏幕上 对于 API 23 及以下版本 一切似乎都工作正常 但当我在 API 24 上进行测试时 DialogFragment 的按钮不再可见
  • 从 Firebase 数据库获取的数据显示在 3 个单独的警报对话框中,而不是一个

    我正在从中获取一些数据FirebaseDatabase然后将它们放入array然后尝试以List这是一个习惯AlertDialog 这是代码 query mDatabase child child child anotherChild ch
  • Spring MVC 4:“application/json”内容类型未正确设置

    我有一个使用以下注释映射的控制器 RequestMapping value json method RequestMethod GET produces application json ResponseBody public String
  • 如何强制删除Python对象?

    我很好奇的细节 del 在 python 中 何时 为什么应该使用它以及不应该使用它 我经历了惨痛的教训才知道 它并不像人们天真地期望的析构函数那样 因为它并不是与 new init class Foo object def init se
  • Jquery中动态选择Drop Down

    我有 4 个下拉菜单 默认情况下 每个 drop 都有一个 select 选项 每个盒子都有一个唯一的 ID 如您所见 如果上面的下拉列表值为 select 则禁用第二个下拉列表 仅当该值不是 select 时才会启用 这是我的代码 doc
  • Java ImageIO.read 导致 OSX 挂起

    我必须在 Mac OSX 上读取图像时执行一些操作 但是在调用 ImageIO read File 时它似乎挂起 似乎也没有出现堆栈跟踪 它实际上只是挂起 想知道其他人是否遇到过这个问题 我已经成功地写了一张图片 只是阅读方面似乎有问题 使
  • C# 中的双向适配器和可插拔适配器模式有什么区别?

    双向适配器和可插入适配器都可以访问这两个类 并且还可以更改需要更改的方法的行为 以下是我的代码 双向适配器 public interface IAircraft bool Airborne get void TakeOff int Heig
  • 即使删除 Entitlements.plist 后,Xamarin 钥匙串错误中也找不到有效的 iPhone 代码签名密钥

    我收到这个错误即使删除 Entitlements plist 后 Xamarin 钥匙串错误中仍发现 iPhone 代码签名密钥当尝试使用 Xamarin Studios 构建 HelloWorld iPhone 应用程序时 我了解在真实设
  • 使用 jemmy 测试 java web start 应用程序

    我需要使用 Jemmy 创建一些 gui 测试 但我不知道如何使用 javaws 应用程序启动它 在教程 示例 等中是这样的 new ClassReference org netbeans jemmy explorer GUIBrowser
  • Python Pickling 字典 EOFError

    我有几个脚本在服务器上运行 用于腌制和取消腌制各种字典 它们都使用相同的基本代码进行酸洗 如下所示 SellerDict open home hostadl SellerDictkm rb SellerDictionarykm pickle
  • Angular 6 不应用 scss 样式

    我有一个组件页面和相应的样式表 但是 component scss 中的类不适用于该页面 没有错误 我仍然想知道为什么 这是我的产品详细信息 page component html div h1 Product Detail Page h1
  • 向 EditText 字段添加阴影效果

    我正在尝试设计一个编辑文本字段像这样有阴影 底部和右侧 尝试谷歌搜索并搜索了许多SO讨论 但所有讨论都是针对TextView而不是EditText 这是我的代码 向输入文本添加阴影 但不向 TextField 添加阴影
  • 使用 urllib2 HTTPS 登录

    我目前有一个小脚本 可以下载网页并提取一些我感兴趣的数据 没什么花哨的 目前我正在下载页面 如下所示 import commands command wget output document quiet http user USER htt
  • 从共享菜单中泄露 IntentReceiver

    我通过在特定活动中单击按钮来打开发送菜单 Intent i new Intent Intent ACTION SEND i setType text plain i putExtra Intent EXTRA TEXT meh try st
  • 什么是合适的数据结构和数据库模式来存储逻辑规则?

    前言 我没有规则引擎 构建规则 建模规则 实现规则数据结构等方面的经验 因此 我不知道我在做什么 也不知道我下面的尝试是否偏离了基础 我试图弄清楚如何存储和处理以下假设场景 为了简化我的问题 假设我有一种游戏类型 用户购买一个对象 其中可能
  • 将 Dictionary 序列化为 BSON 时出现 BsonSerializationException

    我最近搬到了新的 MongoDB C 驱动程序 v2 0 https www nuget org packages MongoDB Driver 2 0 0来自已弃用 v1 9 https www nuget org packages mo
  • 如何在 try catch 语句中重新请求输入

    string l Console ReadLine try int Parse l catch FormatException Console WriteLine Invalid input Please enter 1 2 or 3 正如