我做数据库程序,差不多也做了近十个窗体,全是关于小型仓库管理的,怎么我到现在还没用过try...except...end语句?我觉得好象没什么用嘛!

解决方案 »

  1.   

    那你程序出现错误怎么处理!让delphi自己帮你处理吗?
      

  2.   

    当然有用了,这样可以屏蔽异常时间嘛,在每次对数据库的写入、修改、删除最好都用try...except...end语句,这样很方便的:-)
      

  3.   

    没用过Try..except or fanally基本上就等于说你不懂编程
      

  4.   

    cutedelphigirl (delphi女孩) ??
    又來蠱惑人心。你用都沒用過怎么知道它沒用?
      

  5.   

    try
    操作1
    except
    操作2
    end
    当操作1因为系统以外的某些原因失败时,执行操作2,防止死机或者系统执行错误操作
    所以在一些容易出错的地方(如:数据库操作),最好使用该语句
      

  6.   

    var
       intValue: Integer;
    begin
       try
          intValue := StrToInt('131aaa');
       except
          // 若没有 try ... except 来捕获异常, 则程序会出现一个错误对话框,
          // 而用了异常捕获则不会出现错误对话框, 这样会更加友好.
       end;
    end;
      

  7.   

    当然有用了,就比如
    try
    adoconn.open;
    except
    showmessage('not login,please set up the conn');
    end;
      

  8.   

    delphi的遗憾在于出现过早,是否处理一场好象不是必需的,java多好,不处理不让你编译。
      

  9.   

    有没有高人写一下再delphi程序中必须(应该)处理的异常大全呢?
      

  10.   

    try                              try
      要做的事件                        要做的事件
    finally                          except
      要做的事件正常完成后做的事件      要做的事件正没常完成后做的事件
    end;                             end;
      

  11.   

    打个很简单的比方,你要插入一条记录,但该数据表设了唯一性的主键,那么你在插入记录的时候,就可以把insert语句写在try中,如果你不用try的话,你想程序不出错,那就得在插入记录之前自己先写一些代码来判断一下这条记录能否插入了。with adoqurty1 do
    begin
      try
        //此处是插入记录的代码
      except
       Application.messagebox('记录重复!','提示',MB_OK+MB_IconInformation);
      end;
    end;  
    不知道你不用try语句的时候,这样的情形是如何处理的呢?
      

  12.   

    呵呵多看看书推荐《delphi6开发人员指南》
      

  13.   

    哈哈,也有偷懒的,大段程序放在try后面,出错就提示一个数据库繁忙,好蒙人的。
      

  14.   

    当然有用了,这样可以屏蔽异常时间嘛,在每次对数据库的写入、修改、删除最好都用try...except...end语句,这样很方便的:-)
     打个很简单的比方,你要插入一条记录,但该数据表设了唯一性的主键,那么你在插入记录的时候,就可以把insert语句写在try中,如果你不用try的话,你想程序不出错,那就得在插入记录之前自己先写一些代码来判断一下这条记录能否插入了。with adoqurty1 do
    begin
      try
        //此处是插入记录的代码
      except
       Application.messagebox('记录重复!','提示',MB_OK+MB_IconInformation);
      end;
    end;  
    不知道你不用try语句的时候,这样的情形是如何处理的呢?
      

  15.   

    pwzhu666(暴龙) :
    我已经考虑进去了,会先检测,所以,不可能有重复的记录,而且有提示,
    再用try...except...end
    不是多余了吗?
      

  16.   

    你能保证不重复???举个简单例子, 在并行插入相同值时, 能保证唯一?你的个性特犟, 觉得没必要加 try ... except 语句.其实与你讨论这个问题很没有必要, 因为在运行时有很多情况是你无法预料的. 
    如读取磁盘中的数据, 当你读到一半时操作系统检测到当前簇有问题, 抛出一个异常来, 你若不加 try ... except 捕获, 可能会产生内存来不及释放, 等等可能.只要有与硬件交互你就不可能完全避免异常, 打个比方: 在人行道上走路, 你觉得只要自己注意点就不会摔跤, 突然路塌陷下去, 你根本来不及反应就掉进水坑里.
      

  17.   

    goldencity(响马) 不要那么凶嘛,你敢说初学delphi时就会try...except...end;吗?
    cutedelphigirl (delphi女孩)  如果你是MM的话,留个QQ,俺细细教你。哈哈
      

  18.   

    我认为编写代码时只要考虑周到,没必要使用try
      

  19.   

    我用try...except...end一般是提交SQL语句的时候用.
      

  20.   

    to cutedelphigirl(delphi女孩):
      你把每个可能出错的地方都事先写好代码,确实是能避免程序出错,可是你不觉得用了try更方便吗?代码也会少很多。
      

  21.   

    try
    编程
    except
    睡觉
    finally
    编程
    end;
      

  22.   

    简单,你写一个连接其他机器上数据库的程序,然后把网线拔掉,不管你怎么考虑,总是会出现异常,如果你不用try ..except or finally,那么就会出现系统的异常提示信息。
      

  23.   

    faint!不敢相信会用delphi的人没用过try except end或者try finally end的。。
    ((这年头什么人都敢乱放精通delphi的,
      

  24.   

    使用事务,如果不用try如何rollback?
    具体内容如下:
    要更新两个表,这两个表的数据必须同时更新,后者都不更新当更新了table1时,突然网络中断,而数据库不在本地,如何判断?
      

  25.   

    ▲▼▲▼▲▼▲▼▲▼▲▼不用?? 不知你如何判断知道ADO连接是否正常。如果ADOConnection连接SQL数据库时SQL Server根本就没有打开,你是让系统弹出错误吗???
      

  26.   

    因为你的程序就是那么不堪一击,所以你从来不用Try...Except...End并且天真的认为没有用
      

  27.   

    在你的query.open时如果不用,哪么说明你写的程序不键壮的
    你能保存你的程序是时时刻刻能连接库的吗, 万一连接不上,而执行query.open ,你想想会出现什么样的状况?
      理论我就不用了,前面的兄弟说得很明白了,在这我只是举个例子说明重要性
      

  28.   

    懒的时候:
    try
       .......
    except
     on Exception do
         ShowMessage('程序出错了!不过别问我为什么:-)');
    end
      

  29.   

    在DELPHI环境下运行的程序只要出现异常就停止,所以看出什么来!
    编译成。EXE文件就可以看得比较清楚了!
      

  30.   

    在各位大哥:一般在那些地方要用:
    tryexceptend
      

  31.   

    我想一般是在你认为可能出现错误的时候
    比如,你要打开一个文件,它有可能不存在的啊
    那你就
    try
      reset(f);
    except
      showmessage('文件打开出错!');
    finally
      //做一些处理
    end;
      

  32.   

    try
      reset(f);
    except
      showmessage('文件打开出错!');
    finally
      //做一些处理
    end;delphi一直到7都不支持这种结构。
    必须用镶套
      

  33.   

    呵呵,我也是用delphi写程序好久后,才慢慢开始习惯try。。except这种思路的。。学校里结构化的程序写多了,只知道让函数返回状态,再在调用处去盘状态的做法,习惯了异常机制才发现,原来处理那些复杂的异常情况可以这么简单
      

  34.   

    Whilst we all want to spend our time writing functional code, errors will and do occur in in code from time to time. Sometimes, these are outside of our control, such as a low memory situation on your PC.
       
     In serious code you should handle error situations so that at the very least, the user is informed about the error in your chosen way.
       
     Delphi uses the event handling approach to error handling. Errors are (mostly) treated as exceptions, which cause program operation to suspend and jump to the nearest exception handler. If you don't have one, this will be the Delphi default handler - it will report the error and terminate your program.
       
     Often, you will want to handle the error, and continue with your program. For example, you may be trying to display a picture on a page, but cannot find it. So you might display a placeholder instead. Much like Internet Explorer does.