Czy obsługa błędów typu try-catch jest możliwa w ASP Classic?
Jakie są opcje w ASP Classic do obsługi błędów?
Na przykład:
Używam funkcji Mail.SendMail
, ale po włączeniu serwera testowego nie działa, co jest normalne. Chcę sprawdzić, czy mailing jest możliwy, jeśli nie, to kontynuuj i / lub Pokaż wiadomość.
8 answers
Istnieją dwa podejścia, można kodować w JScript lub VBScript, które mają konstrukcję lub można go fudge w kodzie.
Używając języka JScript można użyć następującego typu konstrukcji:
<script language="jscript" runat="server">
try {
tryStatements}
catch(exception){
catchStatements}
finally {
finallyStatements}
</script>
W kodzie ASP możesz go użyć przy błędzie wznowić dalej w momencie, gdy będziesz miał próbę sprawdzenia błędu.Liczba w punkcie połowu jak:
<%
Dim i
' Turn on error Handling
On Error Resume Next
'Code here that you want to catch errors from
' Error Handler
If Err.Number <> 0 Then
' Error Occurred / Trap it
On Error Goto 0 ' But don't let other errors hide!
' Code to cope with the error here
End If
On Error Goto 0 ' Reset error handling.
%>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-10-17 11:42:24
Odnośnie Anwer Wolfwyrd: "On Error Resume Next" w rzeczywistości wyłącza obsługę błędów! Nie. W przypadku błędu Goto 0 włącza obsługę błędów z powrotem, ponieważ przynajmniej chcemy, aby maszyna złapała go, jeśli nie zapisaliśmy go sami. Off = zostaw to tobie.
Jeśli używasz przy następnym wznowieniu błędu, musisz uważać na to, ile kodu dołączasz po nim: pamiętaj, fraza " if Err.Liczba 0 wtedy " odnosi się tylko do najbardziej poprzedniego wywołanego błędu.
Jeśli twój blok kodu po "On Error Resume Next" ma kilka miejsc, w których można rozsądnie oczekiwać, że się nie powiedzie, następnie należy umieścić "If Err.Liczba 0 " po każdej z tych możliwych linii awarii, aby sprawdzić wykonanie.
W przeciwnym razie po "on error resume next" oznacza dokładnie to , co mówi-Twój kod może zawieść na dowolnej liczbie linii, a wykonanie będzie kontynuowane wesoło. Dlatego to wrzód na tyłku.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-04-04 18:51:39
Dość ładny sposób na poradzenie sobie z tym dla brakujących klas COM:
Dim o:Set o = Nothing
On Error Resume Next
Set o = CreateObject("foo.bar")
On Error Goto 0
If o Is Nothing Then
Response.Write "Oups, foo.bar isn't installed on this server!"
Else
Response.Write "Foo bar found, yay."
End If
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-09-09 00:21:56
1) dodaj On Error Resume Next
na górze strony
2) Dodaj następujący kod na dole strony
If Err.Number <> 0 Then
Response.Write (Err.Description)
Response.End
End If
On Error GoTo 0
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-21 19:28:23
Dla każdego, kto pracował zarówno w ASP, jak i bardziej nowoczesnych językach, pytanie wywoła chichot. Z mojego doświadczenia wynika, że używanie niestandardowej obsługi błędów (skonfigurowanej w IIS do obsługi błędów 500;100) jest najlepszą opcją do obsługi błędów ASP. W tym artykule opisano podejście, a nawet podano przykładową definicję kodu / tabeli bazy danych.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-01-25 14:30:20
Instrukcja On Error Resume Next powinna być umieszczona na tym, co chcemy zweryfikować.
On Error Resume Next
'Your code logic is here
Następnie zakończ wypowiedzeniem w stylu:
If Err.Number <> 0 then
'Your error message goes here'
End if
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-06-26 10:49:13
Dawno nie byłem w ASP land, ale iirc jest kilka sposobów:
try catch finally
można racjonalnie symulować w VBS (dobry artykuł proszę. tutaj) i jest wydarzenie o nazwie class_terminate
, które możesz oglądać i łapać wyjątki na całym świecie. Istnieje możliwość zmiany języka skryptowego...
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-10 09:35:28
Niektóre scenariusze nie zawsze pozwalają programistom na zmianę języka skryptowego.
Zdecydowanie preferuję JavaScript (i używałem go w nowych projektach). Jednak utrzymanie starszych projektów jest nadal wymagane i konieczne. Niestety, są one napisane w języku VBScript.
Więc mimo, że to rozwiązanie nie oferuje prawdziwej funkcji "try/catch", to wynik jest taki sam, a to mi wystarczy, aby wykonać zadanie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-04-02 14:43:29