怎么处理异常?(50分)

  • 主题发起人 主题发起人 小乖
  • 开始时间 开始时间

小乖

Unregistered / Unconfirmed
GUEST, unregistred user!
function GetIPFromName(Name: string): string;
var
WSAData: TWSAData;
HostEnt: PHostEnt;
begin
WSAStartup(2, WSAData);
HostEnt := gethostbyname(PChar(Name));
with HostEnt^ do
** Result := Format('%d.%d.%d.%d', [Byte(h_addr^[0]),Byte(h_addr^[1]), Byte(h_addr^[2]), Byte(h_addr^[3])]);
WSACleanup;
end;
end;


这个过程是通过局域网中的计算机名来找计算机IP地址的。
当给出的计算机名并不存在的时候"**"行就会出错。
我怎样做才能让出错时,Result为"invalid" ?
try finally 怎么用? 谢谢
 
function GetIPFromName(Name: string): string;
var
WSAData: TWSAData;
HostEnt: PHostEnt;
begin
try
WSAStartup(2, WSAData);
HostEnt := gethostbyname(PChar(Name));
with HostEnt^ do
Result := Format('%d.%d.%d.%d', [Byte(h_addr^[0]),Byte(h_addr^[1]), Byte(h_addr^[2]), Byte(h_addr^[3])]);
WSACleanup;
end;
except
Result:='Invalid';
end;
end;
 
function GetIPFromName(Name: string): string;
var
WSAData: TWSAData;
HostEnt: PHostEnt;
begin
try
WSAStartup(2, WSAData);
try
HostEnt := gethostbyname(PChar(Name));
with HostEnt^ do
Result := Format('%d.%d.%d.%d', [Byte(h_addr^[0]),Byte(h_addr^[1]), Byte(h_addr^[2]), Byte(h_addr^[3])]);
finally
WSACleanup;
end;
end;
except
Result:='Invalid Computer Name';
end;
end;
 
后退
顶部