类似如下代码:
try
    IdTCPClient1.Connect;
except
    On   E:   EIdSocketError   do   ...
end;
我想问:
1、EIdSocketError是什么?异常类型?什么作用?
2、E:是什么?这是什么格式?
3、都有哪些异常类型?我怎么到处都找不到,希望大家提供一些,有说明最好^_^!

解决方案 »

  1.   

    1、可以这么理解
    2、是变量
    3、dephi帮助里有很详细的说明
      

  2.   

    EIdSocketError是异常的类型,用来筛选异常触发的种类的,也就是说,只有EIdSocketError类型的异常才会执行except里面的语句,比如    try
        if StrToInt('abc')>0 then
        Caption:='a';
        except on E:EConvertError do
        begin
        edit1.Text:=e.Message;
        edit2.Text:=e.ClassName;
        end;
        end;
    这样你就会发现异常被捕获,相关信息在edit1和edit2里,但如果把EConvertError 改成EIdSocketError或者其他错误就不会触发下面的代码了E 是一个异常的变量,大家都习惯这么写,其实你完全可以用别的字母来代替至于异常的种类,可以看帮助或者源代码,太多了
      

  3.   

    异常类型可以搜索帮助VCL exception classes
      

  4.   

    没想到多写了一点就失去了沙发,呵呵再补充一点,如果想捕获所有的异常,用E:exception do就可以了
      

  5.   

    谢谢几位!
    还想确认一下:是否e表示异常的相关信息将保存在该变量中?
    另外,我在帮助VCL exception classes中看到很多异常类型了,可是怎么没有EIdSocketError?
      

  6.   

    你说的那个异常在IdException.pas里面定义了