• 今日三则之Delphi异常处理&定时器和JS区分大小写


    总结一下今天在修改bug时遇到的几个问题,以后在编程中一定要注意教训。

    再谈Delphi异常处理

    之前总结过一篇Delphi的异常处理,在那篇文章之前我写Delphi代码时很少用异常处理,也不太理解异常处理的含义,从那文章后我才算明白了异常处理并在代码中使用,并逐渐体会到异常处理的重要性。其实delphi的异常处理很简单,常用的就是 try except end;或try finally end;它们之间可以互相嵌套。一般前者主要用于处理异常后不影响当前线程(一般主线程)继续向下执行(发生异常时,语句从end后面继续执行),后者主要是发生异常处理后在finally中做些资源释放的操作(发生异常后,线程执行完finally中语句后结束)。以前还总以为try except end没用,今天才感觉到它很有用,当你希望一个过程发生异常(比如调用一个可能产生异常的函数,此函数处理了异常,貌似Delphi异常是不能向外传递的,只能在产生异常的地方处理而不能到调用该函数的上层函数中处理)后还能继续运行时,就会用到它。

    今天就是用了try except end 解决了之前程序不知为何产生异常就终止运行报错不能停止导致数据状态错误的问题。以后不管用什么语言编程,但要注意异常处理的问题。

    Delphi定时器

    定时器完全是在进程的主线程中工作,受消息循环的控制,只是在需要的时候给消息队列插入一条消息,如果上一次 触发时的消息没有处理完,即使时间到了也不会在此期间触发第二次,因此精度是得不到保证的。定时器的精度不够不是因为触发的问题,而是触发后通过消息队 列,到达的时候已经被延迟,如果系统不忙,这个延迟时间会很小,如果系统忙,这个延迟就无法预料了,但无论如何这个延迟是存在的,当然大部分情况下我们是 能够容忍的,也能够满足日常应用,但要是进行实时通讯等定时器就不够用了。 多媒体定时器从精度上讲会好很多。

    JS区分大小写

    今天由于控件需要写了一段简单的JS代码,其中用到了string的indexOf(substr)>=0方法,由于受Delphi不区分大小写影响,居然将该函数写出indexof,还花费10多分钟调试,不过发现chrome自带的调试功能也很方便直接打开包含JS的网页,然后按F12后找到JS对应的代码单击设置断点,激发事件后就可调试,长时间不写JS,语法及调试方法都生疏了,以后真正要用时要再学习才行。

    JS中字符串可用''或"",对于字符串重要要包含的标点符号特殊字符,',"或\需要用\转义,即在字符串中写成\',\"或\\即可。

  • 相关阅读:
    为https请求配置ssl(不用keystore,直接用证书,rsa私钥,java代码)
    http请求对于List类型参数的处理
    java中string转ByteBuffer
    lua for循环如何从第0位开始
    lua中的cjson简单使用
    mongodb返回方便读的数据
    markdown简单插入图片
    #问题#java报Annotation processing is not supported for module cycles
    #问题#java报can't create non-static inner class instance
    git commit+push的完整步骤
  • 原文地址:https://www.cnblogs.com/doit8791/p/2540899.html
Copyright © 2020-2023  润新知