由于最近的短信模块老是报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. C#排序算法3:插入排序

    插入排序是一种最简单的排序方法,它的基本思想是将一个记录插入到已经排好序的有序表中,从而一个新的.记录数增1的有序表. 原理: ⒈ 从第一个元素开始,该元素可以认为已经被排序 ⒉ 取出下一个元素,在已 ...

  2. Spring boot 运行服务jar外配置配置文件方式总结

    本文为博主原创,转载请注明出处: 由于需要在本地编译打包,在服务器上验证某些功能,需要频繁修改配置,本地打包时,会将配置文件也打包的jar 包内部,这种方式下,若修改配置则需要本地修改重新上传服务器一 ...

  3. spring cloud 通过feign请求设置请求头

    本文为博主原创,转载请注明出处: spring cloud 服务组件之间通过feign 的方式请求,会携带很少的基础类型的消息头参数,比如Content-Type等,但不会携带自定义或指定的请求头参数 ...

  4. 使用Spring Data JPA实现审计功能,记录创建人、创建时间、最后修改时间和最后修改人

    .markdown-body { line-height: 1.75; font-weight: 400; font-size: 16px; overflow-x: hidden; color: rg ...

  5. 11-verilog-有限状态机

    有限状态机 写RTL的时候,实现一个功能的时候有很多种方法 将系统划分为多个状态,状态之间有状态的转移,第一步,第二步......形成有限状态机 流水线技术设计,从输入到输出有多个步骤,多个步骤可以并 ...

  6. 【Git】常用 Git 命令清单

    [来源]https://blog.csdn.net/hj7jay/article/details/53431717

  7. [转帖]k8s(1.28.2)部署ingress-nginx-controller(1.9.0)

    1.部署ingress-nginx-controller 继在三台虚拟机部署k8s后,需要部署ingress-nginx-controller,才能使设置的ingress规则生效. 1.1下载yaml ...

  8. [转帖]tikv性能参数调优

    https://www.cnblogs.com/FengGeBlog/p/10278368.html#:~:text=max-%20bytes%20-for-level-%20base%20%3D%2 ...

  9. [转帖]TiKV集群搭建

    https://www.cnblogs.com/luohaixian/p/15227788.html 1.准备环境 准备4台ubuntu 16.04虚拟机 部署规划: 节点类型 CPU 内存 存储 部 ...

  10. [转帖]s3fs - 使用S3FS存储桶目录允许其他用户使用权限

    https://www.coder.work/article/6661505   我在使用S3FS时遇到问题.我正在使用 ubuntu@ip-x-x-x-x:~$ /usr/bin/s3fs --ve ...