由于最近的短信模块老是报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. 手把手实践教你删除项目当中无用的npm包

    在公司中,我们大部分都是多人共同开发和长时间维护一个项目,但是有时候我们会发现有很多已经废弃的npm 包存在 package.json 中,我们想要删除,但是又不能盲目的删除?那么 depcheck ...

  2. P1164-DP【橙】

    这道题让我更深入的理解了记忆化搜索的过程,既然记忆化搜索的结果要靠返回值来传递,那么记忆化搜索解决问题的必须是倒序的,即记忆化搜索是一个简化问题倒序解决的过程,普通搜索是一个复杂化问题逐步尝试并记录尝 ...

  3. java基础(12)--static变量/方法 与 无 static的变量/方法的区别

    一.static方法与非static方法的区别: 1.带有static方法调用:使用类名.方法名(),(建议,但也支持,"引用".变量的方式访问) 2.没有static方法调用(实 ...

  4. off-policy RL | Advantage-Weighted Regression (AWR):组合先前策略得到新 base policy

    论文题目:Advantage-Weighted Regression: Simple and Scalable Off-Policy Reinforcement Learning,ICLR 2020 ...

  5. latex · markdown | 如何写矩阵和大公式

    1 \left[\begin{array}{c} a & b \\ c & d \end{array}\right] 效果: \[\left[\begin{array}{c} a &a ...

  6. nginx.conf 配置解析及常用配置

    本文为博主原创,未经允许不得转载: nginx.conf 配置文件配置解析 #定义 Nginx 运行的用户和用户组.默认nginx的安装用户为 nobody user www www: #启动进程,通 ...

  7. 260. 只出现一次的数字 III

    1.题目介绍 2.题解 2.1 快排+遍历 思路 同本系列前几题一样 代码 class Solution { public: std::vector<int> singleNumber(s ...

  8. [转帖]Region Merge Config

    TiKV replicates a segment of data in Regions via the Raft state machine. As data writes increase, a ...

  9. [转帖]jemalloc 性能测试

    https://wenfh2020.com/2020/07/30/jemalloc/   jemalloc 是一个优秀的内存分配器,通过与系统默认的内存分配器进行比较:jemalloc 内存分配性能比 ...

  10. [转帖]LVS入门篇(四)之LVS实战

    LVS入门篇(四)之LVS实战 https://www.cnblogs.com/linuxk/p/9360922.html 一.LVS的NAT模式实战 1.环境说明: HOST OS role rem ...