I should have elaborated a bit sorry.
When you use :error, it jumps to that point when a scripting error occurs; but calling a non existing command while connected to a server will send that command to the server, obviously.From that point, it's not a scripting error, you will eventually get a raw 421 reply from the server "/thecommand unknown command".
/haltdef has nothing to do with it either, /haltdef let you halt the default behavior mirc will use in a certain situation, /haltdef is only useful inside an event using the ^ prefix, you should use /halt otherwise.
/reseterror lets you recover from an error, if you don't use it, the scripting engine will try to find another :error goto point by going backward in the chain call (if alias1 call alias2 and you catch an error in alias2 without using /reseterror, it will jump to an eventual :error in alias1), if no :error is found, it behaves as usual, halting with an error displayed.

Use /reseterror if you want to hide the error message.


#mircscripting @ irc.swiftirc.net == the best mIRC help channel