The try/except/finally logic only handles exceptions raised by the code, not errors generated by TestComplete's other engines.
As for your other question, first of all, for additional queries, please start a new thread in the future to make it easier for other users to find answers and such.
Secondly, what sort of path are you putting into evaluate?
I tried the following:
procedure TestThis;
var MyObject;
begin
try
Evaluate('Unit1.TestThat');
except
Log.Message('Yada');
end;
end;
And I correctly went into my except block because the TestThat method doesn't exist. Could you describe in more detail what you're doing to know why the exception handling is not working?