由于最近的短信模块老是报SocketErorr错误,有的时候也不确定是哪里有问题,影响短信的销售,所以这里这样写,把出现的异常捕捉到显示出来。然后跳过这个不发送

------------------------------------------------------------

1.让我们先断开网络测试看下当出现SocketErorr的时候会出现什么异常.

      try
MyResult := MyFastSmsApi.HaoSiSmsSend(top_SmsUserName,top_SmsPassWord,frmClientDm.TopSmsTaskShow_adoq.FieldByName('top_task_receiver').AsString,frmClientDm.TopSmsTaskShow_adoq.FieldByName('top_task_content').AsString,'');
except
on E:Exception do ShowMessage(E.ClassName);
end;

下面这样写的代码:确保显示出错的异常原因,跳过异常的不发送

      //-----------------------------
{开始发送}
try
MyResult := MyFastSmsApi.HaoSiSmsSend(top_SmsUserName,top_SmsPassWord,frmClientDm.TopSmsTaskShow_adoq.FieldByName('top_task_receiver').AsString,frmClientDm.TopSmsTaskShow_adoq.FieldByName('top_task_content').AsString,'');
except
on E: Exception do
begin
if E.ClassName = 'EIdSocketError' then
begin
//标记还在未发送里,把异常写入发送结果
MyTopSmsTaskApi.MarkTopDoStatusTimeResultByTopTaskId(frmClientDm.TopSmsTaskShow_adoq.FieldByName('top_sms_task_id').AsString,'0',FormatDateTime('yyyy-mm-dd hh:mm:ss',Now),'网络异常('+E.ClassName+')');
//日志显示
frmSmsTaskMain.Memo1.Lines.Add(sLineBreak+'任务ID-----'+frmClientDm.TopSmsTaskShow_adoq.FieldByName('top_sms_task_id').AsString+'-----发送失败-----网络异常('+E.ClassName+')-----自动跳过');
end else begin
MyTopSmsTaskApi.MarkTopDoStatusTimeResultByTopTaskId(frmClientDm.TopSmsTaskShow_adoq.FieldByName('top_sms_task_id').AsString,'0',FormatDateTime('yyyy-mm-dd hh:mm:ss',Now),'本地未知异常('+E.ClassName+')');
frmSmsTaskMain.Memo1.Lines.Add(sLineBreak+'任务ID-----'+frmClientDm.TopSmsTaskShow_adoq.FieldByName('top_sms_task_id').AsString+'-----发送失败-----本地未知异常('+E.ClassName+')-----自动跳过');
end; //自动跳过进入下一个
frmClientDm.TopSmsTaskShow_adoq.Next;
frmSmsTaskMain.ProgressBar1.Position := frmSmsTaskMain.ProgressBar1.Position + 1;
Application.ProcessMessages;
Continue;
end;
end;

delphi 异常测试(我自己捕捉)的更多相关文章

  1. 廖雪峰Java8JUnit单元测试-2使用JUnit-2异常测试

    1.异常测试 对可能抛出的异常进行测试: 异常本身是方法签名的一部分: * public static int parseInt(String s) throws NumberFormatExcept ...

  2. TestNg 6.异常测试

    * 什么时候会用到异常测试??* 在我们期望结果为某一个异常的时候* 比如:我们传入了某些不合法的参数,程序抛出异常* 也就是我的预期结果就是这个异常看以下的一段代码: package com.cou ...

  3. testng入门教程8 TestNG异常测试

    TestNG跟踪异常处理代码提供了一个选项.可以测试是否需要代码抛出异常或不抛出. @Test注释expectedExceptions 参数一起使用.现在,让我们来看看@Test(expectedEx ...

  4. TestNG异常测试

    用@Test(expectedExceptions = xxx) 声明 package com.janson; import org.testng.annotations.Test; public c ...

  5. TestNG(九) 异常测试

    package com.course.testng.suite; import org.testng.annotations.Test; public class ExpectedExeption { ...

  6. testNG之异常测试

    @Test(expectedExceptions = ) 在测试的时候,某些用例的输入条件,预期结果是代码抛出异常,那么这个时候就需要testNG的异常测试,先看一段会抛出异常的代码 exceptio ...

  7. 转:delphi异常捕获try except语句 和 try finally语句用法

    转:http://www.java123.net/v/936977.html      2015-06-24 09:27:48 一直写程序都没管他们,也尽量很少用,今天终于想把他给弄个明白,在网上找来 ...

  8. delphi异常捕获try except语句 和 try finally语句用法

    原文地址:delphi try except语句 和 try finally语句用法以及区别作者:1865898133 一直写程序都没管他们,也尽量很少用,今天终于想把他给弄个明白,在网上找来,记下! ...

  9. python 异常的引发和捕捉处理

      1.什么是异常(exception): 异常是python发现某个地方出现逻辑错误时,抛出一个信号,即异常的引发.如果有捕捉语句在,则异常信号被捕捉,如果没有则会传递到默认异常处理器(终止程序). ...

  10. SpringMVC09 Converter变流器、数据回显、异常测试

    1.配置web.xml文件 <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3// ...

随机推荐

  1. 面试官:SpringBoot如何实现缓存预热?

    缓存预热是指在 Spring Boot 项目启动时,预先将数据加载到缓存系统(如 Redis)中的一种机制. 那么问题来了,在 Spring Boot 项目启动之后,在什么时候?在哪里可以将数据加载到 ...

  2. freeswitch通过limit限制cps

    概述 freeswitch在业务开发中有极大的便利性,因为fs内部实现了很多小功能,这些小功能组合在一起,通过拨号计划就可以实现很多常见的业务功能. 在voip云平台的开发中,我们经常会碰到资源的限制 ...

  3. python测试小工具

    2022年第三天,祝福大家元旦快乐,此测试工具在原基础上改进,增加一些新的功能,并去除了复杂的层级链接,架构目前比较简单,全部只使用了一个GridBagSizer布局器完成. 一.背景:主要解决软件测 ...

  4. 【译】Visual Studio 2013 退役 :旧版本 Visual Studio 的支持提醒

    新年到了,也是提醒我们 Visual Studio 支持生命周期中即将到来的日期的好时机.对 Visual Studio 2013 的支持将于今年4月9日结束.如果您使用的是旧版本的Visual St ...

  5. [转帖]Oracle 23c 才支持 TLS1.3

    Transport Layer Security 1.3 Protocol Now Supported in Oracle Database Starting with Oracle Database ...

  6. [转帖]MinIO Client(mc)完全指南

    https://www.cnblogs.com/lvzhenjiang/p/14944821.html 目录 一.获取MinIO Client(mc) 1.1 docker版 1.2 Homebrew ...

  7. [转帖]Kubernetes-18:Dashboard安装及使用

    https://www.cnblogs.com/v-fan/p/13950268.html Helm安装Dashboard 简介 Dashboard 是 kubernetes 的图形化管理工具,可直观 ...

  8. 【转帖】Linux查看二进制文件:一招制敌(linux二进制查看文件)

    https://www.dbs724.com/146055.html 一招制敌:学会Linux查看二进制文件 在Linux操作系统中,二进制文件是一种常见的文件类型.如果你想深入了解一个二进制文件,可 ...

  9. [转帖]ssh时不输入YES

    vim /etc/ssh/ssh_config 60行新添加 StrictHostKeyChecking no

  10. [转帖]Linux:CPU频率调节模式以及降频方法简介

    概述 cpufreq的核心功能,是通过调整CPU的电压和频率,来兼顾系统的性能和功耗.在不需要高性能时,降低电压和频率,以降低功耗:在需要高性能时,提高电压和频率,以提高性能. cpufreq 是一个 ...