Fehlerhafte Fehlerbehandlung im UpdateInstaller

Fehlerhafte Fehlerbehandlung im UpdateInstaller

Postby Dalai » 22.01.2018, 17:49

Durch das Thema Fehler #0 beim Aufruf Update.cmd bin ich auf eine ungünstige oder gar fehlerhafte Code-Stelle im UpdateInstaller aufmerksam geworden.

Problem:
Code: Select all
If Run(@ComSpec & " /D /C Update.cmd" & $options, $scriptdir, @SW_HIDE) = 0 Then
        If ShowGUIInGerman() Then
          MsgBox(0x2010, "Fehler", "Fehler #" & @error & " beim Aufruf von" _
                           & @LF & @ComSpec & " /D /C Update.cmd" & $options & " in" _
                           & @LF & $scriptdir & ".")
        Else
          MsgBox(0x2010, "Error", "Error #" & @error & " when calling" _
                          & @LF & @ComSpec & " /D /C Update.cmd" & $options & " in" _
                          & @LF & $scriptdir & ".")
        EndIf
ist sehr ungünstig. Hier steht der Funktionsaufruf ShowGUIInGerman() vor der Benutzung des Makros @error. Da AutoIt @error zu Beginn jedes Funktionsaufrufs zurücksetzt, kommt in der angezeigten Meldung immer der Wert 0 an.

Vorschlag zur Behebung:
Code: Select all
If Run(@ComSpec & " /D /C Update.cmd" & $options, $scriptdir, @SW_HIDE) = 0 Then
        $err = @error
        If ShowGUIInGerman() Then
          MsgBox(0x2010, "Fehler", "Fehler #" & $err & " beim Aufruf von" _
                           & @LF & @ComSpec & " /D /C Update.cmd" & $options & " in" _
                           & @LF & $scriptdir & ".")
        Else
          MsgBox(0x2010, "Error", "Error #" & $err & " when calling" _
                          & @LF & @ComSpec & " /D /C Update.cmd" & $options & " in" _
                          & @LF & $scriptdir & ".")
        EndIf
wobei $err noch deklariert werden sollte (oder muss wenn die AutoIt-Einstellung MustDeclareVars aktiv ist). Alternativ könnte man auch die Funktion ShowGUIInGerman() schon zu Beginn des Skripts rufen und dessen Rückgabe in einer Variable speichern und an dieser Stelle nur die Variable vergleichen.

Grüße
Dalai
Dalai
 
Posts: 650
Joined: 12.07.2016, 22:00

Re: Fehlerhafte Fehlerbehandlung im UpdateInstaller

Postby WSUSUpdateAdmin » 25.01.2018, 16:28

Moin Dalai,

danke schön! :)

Dalai wrote:Da AutoIt @error zu Beginn jedes Funktionsaufrufs zurücksetzt, kommt in der angezeigten Meldung immer der Wert 0 an.

Stimmt! :oops:

Dalai wrote:Alternativ könnte man auch die Funktion ShowGUIInGerman() schon zu Beginn des Skripts rufen und dessen Rückgabe in einer Variable speichern und an dieser Stelle nur die Variable vergleichen.

Das finde ich noch besser, um die Wahrscheinlichkeit für künftige ähnliche Fehler zu senken. ;)

:arrow: http://trac.wsusoffline.net/browser/trunk (r924)

Vielen Dank & viele Grüße,
Torsten
WSUSUpdateAdmin
Administrator
 
Posts: 2123
Joined: 07.07.2009, 15:38

Re: Fehlerhafte Fehlerbehandlung im UpdateInstaller

Postby Dalai » 25.01.2018, 18:23

WSUSUpdateAdmin wrote:Das finde ich noch besser, um die Wahrscheinlichkeit für künftige ähnliche Fehler zu senken. ;)

Stümmt :)


:thumbsup: (ein entsprechendes Smilie fehlt, oder?)

Grüße
Dalai
Dalai
 
Posts: 650
Joined: 12.07.2016, 22:00

Re: Fehlerhafte Fehlerbehandlung im UpdateInstaller

Postby boco » 26.01.2018, 03:58

Ja. phpBB ist nicht gerade reich besät mit Emoticons/Emojis (Smilies sagt schon lange keiner mehr. :ugeek:).
Microsoft update catalog: http://catalog.update.microsoft.com/v7/site/
Windows Install media download: https://support.microsoft.com/en-us/help/15088/windows-create-installation-media
boco
 
Posts: 2030
Joined: 24.11.2009, 18:00
Location: Germany


Return to Anregungen / Suggestions

Who is online

Users browsing this forum: No registered users and 9 guests