尝试并捕捉帕斯卡

2023-12-02

我正在使用 Dev-Pas 1.9.2,并试图确保输入符号或字母值时程序不会崩溃。

我用谷歌搜索了一遍,但找不到任何关于如何实现这一目标的资源。

任何帮助是极大的赞赏。谢谢!

这是我尝试管理输入的代码:

 Function GetMenuChoice : Integer;
  Var
    OptionChosen : Integer;
  Begin
    Write('Please enter your choice: ');
    Readln(OptionChosen);
    If (OptionChosen < 1) Or ((OptionChosen > 4) And (OptionChosen <> 9))
      Then
        Begin
          Writeln;
          Writeln('That was not one of the allowed options.  Please try again: ');
        End;
    GetMenuChoice := OptionChosen;
  End;

更改您的代码以接受 Char ;如果出于某种原因需要整数,请稍后处理转换。

这在德尔福中有效;除非你不能使用像这样的集合['1'..'4','9']和设置运算符,它应该可以正常工作。

Function GetMenuChoice : Char;
Var
  OptionChosen : Char;
Begin
  repeat
    Write('Please enter your choice: ');
    Readln(OptionChosen);

    If not (OptionChosen in ['1'..'4', '9'])
      Then
        Begin
          Writeln;
          Writeln('That was not one of the allowed options.  Please try again: ');
        End;
  until OptionChosen in ['1'..'4', '9'];
  GetMenuChoice := OptionChosen;
End;

如果您绝对需要返回数字,请将返回类型更改回整数(或字节),然后将最后一行更改为:

GetMenuChoice := Ord(OptionChosen) - 48;  

or

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

尝试并捕捉帕斯卡 的相关文章

  • 使用 NSError 检查错误的正确结构

    我正在编写各种例程 并尽力保持其整洁和重构 我正在创建的方法开始看起来与此代码类似 IBAction buttonPress id sender Create Document Shopping List with this documen
  • 如何避免重复的 try catch 块

    我有几种类似这样的方法 public void foo try doSomething catch Exception e Log Error e 我可以把代码改成这样吗 LogException public void foo doSom
  • 捕获 .aspx 和 .ascx 页面中的异常

    问题说明了一切 请看以下示例代码 ul li li ul
  • 捕获 SwiftUI 中的错误

    我在某些视图中有一个按钮 它调用 ViewModel 中可能引发错误的函数 Button action do try self taskViewModel createInstance name self name catch Databa
  • PHP通知和警告的区别

    当编写代码错误时 可能会出现警告和通知 我知道错误背后的想法 我想警告是为了通知您可能导致错误的事情 但通知不是完全相同吗 我认为通知并不是某件事做得正确的消息 这让我有点困惑 任何人都可以区分这两者之间的区别以及应该如何处理这些消息 通知
  • 文件太大错误处理 Nodejs Express Multer

    我将 multer 与 ExpressJS 一起使用 我想将文件上传限制为 0 5 MB var limits fileSize 0 5 1024 1024 var upload multer dest public uploads lim
  • 使用 CodeIgniter 中的模板自定义错误页面

    我正在使用 CodeIgniter 的模板库 http williamsconcepts com ci codeigniter libraries template reference html http williamsconcepts
  • 在 VB6 中如何处理错误处理程序中的错误?

    我在 VB6 应用程序中经常遇到这种情况 Private Sub DoSomething On Error Goto err1 Call ProcessLargeBatch1 Call ProcessLargeBatch2 more Exi
  • ELMAH 错误和经典 Asp

    我们已经在我们拥有的 ASP NET MVC 网站上使用 ELMAH 进行错误日志记录 但我们的主网站仍然是经典的 asp 我已经开始为该网站创建错误处理 日志记录结构 但我认为它如果我们能够在所有应用程序中保持错误日志记录的一致性 那就太
  • 将 c++ 异常传播到 cython - python 异常

    我的 Cython 0 17 1 有问题 我的函数抛出一个std runtime error如果文件不存在 我想以某种方式将此异常传播到我的 Cython 代码 void loadFile const string filename som
  • 在 C# 中,为什么变量没有在finally 块的开头明确赋值?

    我不明白为什么下面的代码会产生错误 通常我可以从语言规范中弄清楚事情 但在这种情况下我不理解语言规范 顺便说一句 这不会在我的代码中造成问题 我只是想理解这种语言 Example bool success try success true
  • 使用 Inno Setup 中格式化(部分粗体)的文本制作安装程序?

    有人看过 GOG com 游戏安装程序吗 如何制作像这样的欢迎文本字符串 包括单个标题中的路径和需要大小 其中部分内容加粗 以下是修改安装路径后如何更改字符串换行的示例 您可以使用TRichEditViewer http www jrsof
  • 更新面板异常处理

    当我在正在构建的 ASP NET Web 应用程序中实现的 UpdatePanel 中发生异常时 它们会导致页面上出现 JavaScript 错误 并在警报中提供一些高级错误输出 这对于开发来说还可以 但是一旦系统投入生产 由于多种原因 这
  • 如何捕获反序列化异常?

    PHP 是否可以在以下情况下捕获异常 unserialize 产生错误 一个简单的方法是 ret unserialize foo if ret null Error case 但这不是最现代的解决方案 最好的方法是像前面提到的那样有一个自定
  • 具有异步操作的面向铁路的编程

    以前问过类似的问题 但不知何故我没有找到出路 再次尝试另一个例子 作为起点的代码 稍作修改 可在https ideone com zkQcIU https ideone com zkQcIU 它有一些识别问题Microsoft FSharp
  • Kotlin 协程 - 优雅地处理挂起函数中的错误

    尝试使用从异步方法调用的挂起函数来实现对错误的优雅处理 如何捕获挂起方法引发的错误 suspend fun findById id Long User throw Exception my exception intentionally t
  • 抛出 UnsupportedOperationException

    因此其中一种方法的描述如下 public BasicLinkedList addToFront T data 该操作无效 对于排序列表 将生成 UnsupportedOperationException 使用消息 排序列表的操作无效 我的代
  • 在 JavaScript 中扩展 Error 的好方法是什么?

    我想在我的 JS 代码中添加一些东西 并且希望它们成为 Error 的实例 但我也想让它们成为其他东西 在 Python 中 通常会子类化 Exception 在 JS 中应该做什么 In ES6 class MyError extends
  • JavaScript 反静默技术来指示失败

    当错误确实发生并且函数无法继续执行时 在 JavaScript 中报告错误而不是依赖 null 和 undefined 是一个好方法 我可以想到三种方法 没做什么 抛出异常 assert 这是一个简单的示例场景 一个将传入的金额记入用户帐户
  • python os.rename ""当文件已存在时无法创建该文件

    K 我只是使用在这里找到的一个简单脚本 import os from os import rename listdir print os listdir for filename in os listdir if filename star

随机推荐