Soviel ich weiß lösen
WinAPI-Funktionen keine Exceptions aus, aber es gibt (meistens negative) Rückgabewerte, welche einen Fehler signalisieren. Mit Hilfe derer kannst du das Ganze steuern.
Bezüglich dem Error(1): Du könntest mit einer Booleanvariable arbeiten, aber ich verstehe nicht, was dich daran so stört.