如何实现错误处理?

2023-12-14

我的 AutoIt 脚本生成了一个我想要处理的错误。将任何错误发送到自定义函数的方式也可以。在VBA中我使用OnErrorGoTo,但我无法在 AutoIt 中找到类似的东西。

我的代码:

Func Start()
    While 1
        If ProcessExists ( "Photoshop.exe" ) <> 0 Then
            Sleep(5000)
        Else
            Local $sFile ="C:\Auto\CodeToBe\Batch\Image Process-50-2D v.2-" & $n & ".jsxbin"
            Local $iPID = ShellExecute($sFile)
            Sleep(10000)
            $n = $n+1
        EndIf
    WEnd
EndFunc

$n超过该文件夹中的文件数量。我尝试了这个,但没有成功(来自“帮助部分”和论坛帖子):

Global $iEventError = 0 ; To be checked to know if COM error occurs. Must be reset after handling.
Local $oMyError = ObjEvent("AutoIt.Error", "ErrFunc") ; Install a custom error handler

Func Start()
    While 1
        If ProcessExists ( "Photoshop.exe" ) <> 0 Then
            Sleep(5000)
        Else
            Local $sFile ="C:\Auto\CodeToBe\Batch\Image Process-50-2D v.2-" & $n & ".jsxbin"
            Local $iPID = ShellExecute($sFile)
            If $iEventError Then
                MsgBox($MB_OK, "", "There was an error on the previous line.")
                $iEventError = 0 ; Reset after displaying a COM Error occurred
            EndIf
            Sleep(10000)
            $n = $n+1
        EndIf
    WEnd
EndFunc

; This is my custom error handler 
Func MyErrFunc() 
    Msgbox(0,"","ERROR GENERATED ON " & $n)
Endfunc

我推荐第二个示例,因为它首先可以防止错误。但是,第一个示例可以用作通用错误检查器。

实施例1

Start()

Func Start()

    Local $n = 1
    While 1
        If ProcessExists("Photoshop.exe") <> 0 Then
            Sleep(5000)
        Else
            Local $sFile = "C:\Auto\CodeToBe\Batch\Image Process-50-2D v.2-" & $n & ".jsxbin"

            Local $iPID = ShellExecute($sFile)
            If @error Then MyErrFunc(@ScriptLineNumber, @error) ;check for error

            Sleep(10000)
            $n = $n + 1
        EndIf
    WEnd
EndFunc   ;==>Start

; error handler
Func MyErrFunc($iLineNumer, $iError)
    $iLineNumer = $iLineNumer - 1
    MsgBox(0, "", "ERROR GENERATED ON SCRIPT LINE: " & $iLineNumer & @CRLF & "ERROR CODE: " & $iError)
EndFunc   ;==>MyErrFunc

实施例2

Start2()

Func Start2()

    Local $n = 1
    While 1
        If ProcessExists("Photoshop.exe") <> 0 Then
            Sleep(5000)
        Else
            Local $sFile = "C:\Auto\CodeToBe\Batch\Image Process-50-2D v.2-" & $n & ".jsxbin"

            If FileExists($sFile) Then
                Local $iPID = ShellExecute($sFile)
                Sleep(10000)
            Else ;handle error (you could use a function here if you wanted)
                ConsoleWrite("File not found: " & $sFile & @CRLF)
            EndIf

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

如何实现错误处理? 的相关文章

  • PHP 致命错误

    当 PHP 出现致命错误时 有没有办法让代码继续 而不是退出 例如 我遇到超时致命错误 并且我希望每当它发生时就跳过此任务并继续执行其他任务 在这种情况下 脚本退出 有一种使用输出缓冲的 hack 可以让您记录某些致命错误 但是在发生致命错
  • 如何始终返回index.html Tomcat

    我有一个在 Tomcat 上运行的 Angular 应用程序 但由于我已经实现了路由 如果我手动访问一个 url 我会得到一个404未找到 另外 当发生错误时 它是一个基本的服务器页面 而不是我的错误 url 页面 如何配置 Tomcat
  • Rails:特定 HTTP 错误代码的自定义行为

    我正在开发一个 RoR 网站 希望单独处理服务器错误 400 404 500 等 另外 由于网站是动态的 我想在 Rails 环境中处理错误 而不是在服务器级别 我想做的一个例子是 当用户遇到无法加载或根本不存在的页面或模板时 向用户提供可
  • CakePHP 2.0 中的错误处理。转义 viewVars [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我在 Cake 2 中遇到了一个奇怪
  • 使用 sapply 时,我在 str2lang(x) 中收到错误: :1:31: 意外符号 1 ^

    当运行这段代码时 我会得到一个错误 genes lt colnames survdata c 1 3 univ formulas lt sapply genes function x as formula paste Surv OS sta
  • CakePHP:控制台命令中的自定义错误报告

    我们当前使用 CakePHP 2 4 7 和自定义错误处理程序 自定义错误处理程序适用于通过 HTTP 或 CronDispatcher 发出的每个请求 不幸的是 当向我们的控制台命令之一发出控制台请求时 错误处理程序被忽略 请参见以下示例
  • 从PHP7.4升级到PHP8,是否可以忽略某些错误

    我们有一个巨大的代码库 在访问未定义的变量或数组键时 我们忽略了 php7 的通知 例如 somethingThatMayNotExist REQUEST somethingThatMayNotExist PHP8 现在会抛出错误 我知道我
  • Swift:NSError 现在应该被视为遗留问题吗?

    文档和流行博客建议使用 do catch 进行 Swift 错误处理 并处理 ErrorType 枚举或 NSError 实例 ErrorType 枚举和 NSError 实例在 try catch 块中是否互斥 如果没有 如何实现一个同时
  • 离开页面时 JQuery Ajax 错误

    我使用以下代码将数据从服务器异步提取到客户端 错误块中的警报报告服务器上发生的错误 但是 如果用户在调用过程中离开页面 该块也会被触发并抛出一个空的警报容器 有什么方法可以更优雅地处理用户离开页面的情况 即在离开之前不抛出空警报 也许可以通
  • PHP - 停止显示错误中的完整路径

    有什么方法可以告诉 PHP 不显示错误 警告或通知消息中存在任何错误的文件的完整路径 我知道我可以禁用错误 但是 只是为了避免任何风险 例如 我的脚本返回一个错误 显示如下 Fatal error Call to undefined fun
  • PowerShell Try、Catch、自定义终止错误消息

    有没有办法自定义终止错误的错误消息 在下面的例子中我只想得到一个Try部分并将所有错误收集在一个中Catch通过组合两个脚本块来部分 我的问题是 error产生于Import csv描述性不够 我想要文字Failed CSV File im
  • 是否存在应明确跟踪或忽略的事件?

    在做研究解决问题的同时如何在处理程序之后自动重新引发异常 https stackoverflow com q 56084252 216356 开发了一个异常类 具有在处理后自动再次抛出自身的能力 受到ThreadAbortException
  • exit() 和 abort() 有什么区别?

    在C和C 中 有什么区别exit and abort 我试图在发生错误 不是例外 后结束我的程序 abort http en cppreference com w c program abort退出程序而不调用使用注册的函数atexit h
  • 无法渲染非字符串的属性,toString 返回:null SPRING MVC 中的错误

    我正在尝试按照本教程为我的 spring mvc 项目创建一个通用错误处理程序 http www mkyong com spring mvc spring mvc exceptionhandler example http www mkyo
  • 当我尝试从列表中删除元素时,如何忽略 ValueError?

    如果我打电话 如何忽略 不在列表中 错误消息a remove x when x不在列表中a 这是我的情况 gt gt gt a range 10 gt gt gt a 0 1 2 3 4 5 6 7 8 9 gt gt gt a remov
  • 从远程托管上的 PHP 获取 PHP 错误日志

    是否有 PHP 函数或其他方式以字符串形式获取 PHP 错误日志 我需要这个 因为我无法访问在其他人的服务器上运行的站点的错误日志 他提出通过电子邮件将错误日志发送给我 但这不太方便 有什么方法可以将错误日志输出到 PHP 页面吗 我意识到
  • warnings() 在函数内不起作用?如何解决这个问题?

    op lt options warn 0 although doesn t work for any value of warn assign last warning NULL envir baseenv thisDoesntWork l
  • 为什么我不能将左大括号放在下一行?

    当我尝试编译以下代码时遇到奇怪的错误 package main import fmt fmt func main var arr 3 int for i 0 i lt 3 i fmt Printf d arr i 错误如下 unexpect
  • 通过等待任务或访问其 Exception 属性都没有观察到任务的异常

    这些是我的任务 我应该如何修改它们以防止出现此错误 我检查了其他类似的线程 但我正在使用等待并继续 那么这个错误是怎么发生的呢 通过等待任务或访问其 Exception 属性都没有观察到任务的异常 结果 未观察到的异常被终结器线程重新抛出
  • JavaScript 错误处理的最佳实践是什么?

    我希望开始让我的 JavaScript 更加防错 并且我找到了大量有关使用的文档try catch finally and throw 但我没有从专家那里找到大量关于何时何地抛出错误的建议 每段代码都应该包含在 try catch 中吗 还

随机推荐

  • 在访问选项卡之前,另一个选项卡中的传单未使用 leafletproxy 进行更新

    我正在制作一个使用闪亮的应用程序 该应用程序使用多个选项卡 在一个选项卡 不是起始选项卡 上 我显示一张传单地图 该地图由不同选项卡上的小部件控制 问题是 如果我更改一个选项卡上的输入 而不先访问地图 然后访问地图 则地图不会更新 但是 在
  • vue-router 与 laravel 路由结合

    我已成功设置 vue router 但将其与我的 laravel 5 3 路由混合时遇到一些问题 我有一个回家的 php 路线 Route get array as gt home uses gt HomeController showWe
  • Maven:如何检查工件是否存在?

    如何从 Mojo 内部检查本地存储库中是否已存在工件 我正在将大型二进制文件安装到本地 Maven 存储库中 在尝试下载它们之前我需要知道它们是否已经存在 在以下人员的帮助下解决了http docs codehaus org display
  • 拦截 Spring MVC 3 中的视图/响应

    我是 Spring MVC 3 的新手 我了解基本概念 我能够做简单的事情 例如创建控制器 服务和视图 然而 我还没有涉足更高级的领域 因此 如果这个问题看起来很愚蠢 或不可能 我深表歉意 我想知道是否有一种方法可以拦截视图和 或响应并在将
  • 替换 fflush(stdin)

    我有下面的代码 fflush stdin print Enter y n scanf c a 在这里 它在提供输入之前退出 看起来问题是因为它没有刷新可能包含一些垃圾字符的输入缓冲区 是否有刷新 stdin 的替代方案 此代码片段在 Sol
  • Boto3获取EC2实例的卷

    我正在尝试使用 boto 3 获取 aws 实例的卷 ID 列表 我正在获取某种集合管理器 但我不知道如何获取内部数据 import boto3 ec2 boto3 resource ec2 region name us west 2 in
  • 如何通过迭代地从字符串中删除所有出现的某些指定单词来最小化字符串的长度

    这个问题出现在一次编程竞赛中 但我们仍然不知道如何解决 问题 给定一个字符串 S 和一个字符串列表 L 我们希望不断删除 L 中可能出现的所有子字符串 并且我们必须最小化最终形成的字符串的长度 另请注意 删除字符串可能会引发更多删除 例如
  • WebDriverException:使用 ChromeDriver Chrome 和 Selenium 与 iframe 内的元素交互时目标框架分离

    我使用 Chromedriver 78 0 3904 70 WebDriverException target frame detached exception 已经发生过 但在以前版本的 chromedriver 中一切正常 现在在我的
  • HTTP 服务器检测到来自 HTTP 客户端的网络连接中断

    我有一个 Web 应用程序 在向服务器发出 HTTP 请求后 客户端在客户端完全接收到响应之前退出 或网络连接中断 在这种情况下 应用程序的服务器端需要执行一些清理工作 HTTP 协议中是否有内置方法来检测这种情况 服务器如何知道客户端是否
  • SpriteKit:检测完整的节点重叠

    我有两个 SKShapeNode 一个具有基于边缘的 SKPhysicsBody 一个基于体积 我想检测它们的相交而不发生碰撞 我的工作正常 当一个方法越过另一个方法时 SKPhysicsContactDelegate 接触方法就会被调用
  • Android 可点击 TextView,带有提示和图像,用于启动搜索对话框并显示所选结果

    我正在寻找一个示例 该示例展示了如何实现可单击的文本视图 该文本视图启动 Android 默认搜索对话框并显示选定的结果行 它应该与 Android 上的 Google 地图操作栏中的搜索字段具有相同的行为和设计 例如 左侧的放大镜图标 如
  • Java Arraylist 数据提取

    您将如何提取数据 如下所示 我想从这个数组列表中提取 itemname Original number 12 itemname BBQ number 23 itemname CatchUp number 23 这个数组 Original 1
  • 使用 AppleScript 将邮件消息设置为纯文本

    我有一个 AppleScript 可以很好地整理信息并创建带有附件的电子邮件 我找不到脚本将消息格式设置为接收收件箱所需的 纯文本 而不是默认的 富文本 的方法 是否有 AppleScript 方法 或技巧 将消息格式设置为 纯文本 我在尝
  • Tensorflow:如何在 python 中编写带有梯度的操作?

    我想用 python 编写一个 TensorFlow 操作 但我希望它是可微的 能够计算梯度 这个问题询问如何在 python 中编写操作 答案建议使用 py func 没有梯度 Tensorflow 用 Python 编写操作 TF 文档
  • Lumia Imaging SDK 图像混合创建分隔线

    我正在尝试使用 Lumia Imaging SDK 创建平铺背景JpegTools BlendAsync 方法 我循环调用该方法来合并所有平铺图像 该方法有效 但输出图像中存在不需要的线条 这些分隔线出现在单个图块图像的边界处 合并不干净
  • 当文件名有空格时,运行时 exec() 不运行命令[重复]

    这个问题在这里已经有答案了 我是 Java 新手 正在尝试将我的一个项目从 C 转换为 Java 以便将其与另一个 Java 程序结合起来 当我使用 Runtime exec 时 我很难获得正确的结果 我有以下程序段 Java 忽略处理给定
  • 在cpp中将字符串转换为_T

    我想转换string or char to the T但做不到 如果我写 tcscpy cmdline T hello world 它工作得很好 但是如果我写 char msg hello world tcscpy cmdline T ms
  • Spring中的数据库连接管理

    使用 Spring 框架时我们是否必须显式管理数据库资源 比如关闭所有打开的连接等 我读到 Spring 将开发人员从此类样板代码中解放出来 这是为了回答我在 Spring Web 应用程序中遇到的错误 org springframewor
  • 模式扩展以运行命令

    知道我能跑echo or mv扩展这样的模式 echo 0 9 A Z 我很想知道是否有办法执行相同的操作但运行命令 docker compose stop rm up d 上面的例子不起作用 但有某种方法可以实现这一点 分别运行 stop
  • 如何实现错误处理?

    我的 AutoIt 脚本生成了一个我想要处理的错误 将任何错误发送到自定义函数的方式也可以 在VBA中我使用OnErrorGoTo 但我无法在 AutoIt 中找到类似的东西 我的代码 Func Start While 1 If Proce