各层TRY EXCEPT其间的关系

各层TRY EXCEPT之间的关系.
  DLL内部有一函数,用Try Except 拦截异常并用Messagebox()提示,在调用此函数时也用了Try Except拦截异常并用showmessage()提示.
  在调试DLL时,函数内部的Try有拦截到异常并提示,但在编译成DLL后,再调用此DLL,函数内部的Try messagebox()异常没有显示.调用此函数处的try showmessage()有提示.想请教如何函数内部的messagebox()显示出来.

------解决方案--------------------
还要注意一点,dll的参数不要用string,改为PChar
procedure tstockjc_6.ExcelToSql(filename:string); //部品导入


procedure Tstockjc_6.N5Click(Sender: TObject);
var
    dialog:TOpenDialog;
    sql,filename:string;
begin
 try
    with ADOQuery1 do
    begin
      close;
      sql.Clear;
      sql.Add('delete bp_pd');
      ExecSQL;
    end;
 
     dialog:=TOpenDialog.Create(Self);
     dialog.FileName:='*.xls';
     dialog.Filter:='*.xls';
     if not dialog.Execute then Exit;
     filename:=dialog.FileName;
     ExcelToSql(filename);
 
    with ADOQuery1 do
    begin
      close;
      sql.Clear;
      sql.Add('update  bp_pd set zsl=cksl');
      ExecSQL;
    end;
    with ADOQuery1 do
    begin
      close;
      sql.Clear;
      sql.Add('select * from bp_pd order by bppf');
      Open;
    end;
    MessageBox(handle,'打开浏览数据完成.','提示',64);
    except on e: exception do//将实际的报错显示出来看下
      MessageBox(handle,PChar('数据出错.' +#13#10+ e.message),'错误(部品)B',16);

    Exit;
    end;
------解决方案--------------------
用断言+TRY结合来用各层TRY EXCEPT其间的关系