Domino 9 und frühere Versionen > ND6: Entwicklung
Timer
andrew22:
GetAllWatchValues = GetAllWatchValues & Format$(ReportRowArray(intCount).lngRunTime / EventList("Total run time").lngPreviousRunTime, "000.0%") & " "
Diese Zeile ist es die beim debug zurück kommt als fehler sozusagen.
ascabg:
Und was stehen in den einzelnen "Variablen" fuer Werte?
ReportRowArray(intCount).lngRunTime = Wert ?
EventList("Total run time").lngPreviousRunTime = Wert ?
Andreas
andrew22:
Was sagen euch diese beiden Ergebnisse ?
seconds % calls secs/call event
===========================================================================
00000,080 100,0% 0000001 00000,080 Total run time
00000,080 100,0% 0000001 00000,080 Do_QueryWebOpen
seconds % calls secs/call event
===========================================================================
00000,060 100,0% 0000001 00000,060 Total run time
00000,050 083,3% 0000001 00000,050 Do_QueryWebOpen
koehlerbv:
Nichts. Sie haben mit Deinen Fragen wegen "division by zero" gar nichts mehr zu tun.
Ergo: Bitte eine beantwortbare Frage.
Bernhard
flaite:
Imho bist du an irgendeinem Punkt gedanklich blockiert.
Das ist nur menschlich.
Also.
Der Computer signalisiert auf diesen Code-Abschnitt:
--- Code: ---GetAllWatchValues = GetAllWatchValues & Format$(ReportRowArray(intCount).lngRunTime / EventList("Total run time").lngPreviousRunTime, "000.0%") & " "
--- Ende Code ---
eine division by zero exception.
Dies ist so, weil die Designer von LotusScript ein Teilen durch 0 verboten haben. Ich bin leider nicht so der große Mathematiker. Aber in der Schulmathematik war es nicht anders.
Das bedeutet:
Der Code hinter dem / ergibt 0 und darf nicht 0 ergeben.
Dieses Codefragment ist:
--- Code: ---EventList("Total run time").lngPreviousRunTime
--- Ende Code ---
Was dies sagen soll, ist nicht nur für dich sondern für alle Betrachter dieses Threads nicht offensichtlich.
Was ist die intelligente Reaktion auf nicht-offensichtliche Phänomene?
Der Versuch das Phänomen auf kleinere Einheiten zu zerlegen, diese zu verstehen und dann evtl. zu einem Gesamtverständnis zu gelangen.
Eine naive Möglichkeit damit umzugehen ist:
--- Code: ---Dim divider as Long
divider = EventList("Total run time").lngPreviousRunTime
if divider = 0.0 then
print "divider darf nicht 0 sein"
exit sub (oder exit function)
end if
GetAllWatchValues = GetAllWatchValues & Format$(ReportRowArray(intCount).lngRunTime / divider, "000.0%") & " "
--- Ende Code ---
Als nächstes kannst du den Code studieren und dir überlegen, warum EventList("Total run time").lngPreviousRunTime den Wert 0 ergibt. Und vermutlich findest du einen Weg, die Klasse so zu nutzen, dass dieser Fall unter keinen Umständen auftritt.
nicht schwer
Axel
Navigation
[0] Themen-Index
[*] Vorherige Sete
Zur normalen Ansicht wechseln