如何将Unicode字符串传递给异常引发消息并捕获它:
try
if some <> some2 then
raise Exception.Create('Cannot connect to Sever');
...
...
except
on E: Exception do
mError(E.Message);
exit;
end;
这个想法是本地化。
答案 0 :(得分:5)
您可以声明使用WideString
而不是string
的异常类。在TNT Unicode库中可以找到一个很好的例子。该库不仅引入了Unicode异常类,还提供了使异常处理机制处理Unicode异常所需的所有相关脚手架。
例如,假设引发了一个到达顶级异常处理程序的异常。您希望它能够识别Unicode,并且TNT库可以确保这一点。或者您希望本地化操作系统错误。同样,还有一些额外的工作,TNT库负责处理它。
我的建议是,如果您希望在应用程序中使用Unicode,则在Unicode前Delphi中,您应该采用TNT Unicode库。如果由于某种原因你不能采用它,至少在你自己的编码中使用它的源代码来获取灵感。