Есть три основных типа ошибок:
Ошибка компиляции:
Этот вид ошибок происходит в целом из -за проблемы синтаксиса кода.
Глагол ASP прекратил работать из -за ошибки компиляции.
Запустить ошибку
Эта ошибка возникает, когда вы готовы запустить ASP.
Например: если вы пытаетесь присвоить значение переменной, но оно выходит за рамки, разрешенную переменной.
Логическая ошибка
Логические ошибки являются наиболее сложными для обнаружения.
Это требует от нас тщательно проверить наш код.
Поскольку ошибки компиляции обычно происходят вместе с логическими ошибками и могут быть отображаются, мы беспокоимся о ошибке работы. Он завершает работу ASP и оставляет кучу недружественного текста для пользователя.
Итак, как мы справляемся с ошибками операции! ? Давайте сначала посмотрим. При резюме «Ошибка» Следующее оператор, все ошибки запуска будут.
Вот код ошибки:
Microsoft Ole DB -провайдер для Drivers Drivers Error 80004005
[Microsoft] [ODBC Driver Manager] Имя источника данных не найдено и не указан драйвер по умолчанию
/test.asp, строка 60
Когда мы используем оператор RESUME OR RESUME в верхней части программы, все ошибки будут проигнорированы, и программа автоматически выполнит следующее оператор. Таким образом, программа будет полностью выполнена, и пользователь не увидит сообщение об ошибке после возникновения ошибки. Но есть и недостатки таким образом, то есть, если программа не выполняется, как вы представляете, вам будет трудно узнать, что не так, поэтому вам придется иметь дело с ошибками, где это необходимо.
Обработка ошибок
В ASP лучший способ справиться с ошибками - это поставить код в нижней части программы для обработки ошибок. Я также рекомендую использовать буферы в каждой программе ASP. Таким образом, если произойдет ошибка, страница остановится, и содержимое страницы будет очищено, чтобы пользователь не увидел сообщение об ошибке, и на вас будет меньше жалоб! Вот пример:
<%@ Ranguage = vbscript%> <%'установить буфер на истинный ответ. Buffer = true' Resumpling Ошибка ошибки при восстановлении ошибки. Сообщение об ошибке отображения пользователю%> <html> <Head> <title> </title> </head> <body bgcolor =#c0c0c0> <font face = arial> произошла ошибка при выполнении этой страницы ASP <br> Пожалуйста, сообщите следующее Информация о службе поддержки <p> <b> Объект ошибки страницы </b> <br> Номер ошибки: < %= err.number %> <br> Сообщение об ошибке: < %= err.description %> <br> Ошибка Сообщение: < %= err.description %> <br> Произошла ошибка Файл: < %= err.source %> <br> Строка ошибки: < %= err.line %> <br> </font> </body> </Html> <%end, если%>
Как вы можете видеть выше, я сначала установил на резюме ошибки, чтобы ошибка не повлияла на выполнение программы.
Обработка ошибок и база данных
Выполнение добавления баз данных к обработке ошибок очень сложно. Если у нас есть программа со многими командами для добавления записей в базу данных, если вставка/обновление выполняется в нижней части программы, если наша ошибка возникнет снова раньше, то все будет закончено! Мы добавим сообщение об ошибке в базу данных. Поскольку мы использовали при ошибке резюме следующим, все ошибки были проигнорированы! Даже если есть ошибка, программа все равно будет добавлять данные в базу данных.
Чтобы избежать этой ситуации, мы должны сначала сделать несколько трюков.
Если err.number = 0 и objconnection.errors.count = 0, то здесь можно выполнить оператор, потому что нет ошибок, установленных rstresults = dbdata.execute (txtsql) конец, если
Более продвинутые решения
Когда возникает ошибка, вы также можете отобразить больше сообщений об ошибках. Ниже приведен пример обработки ошибок в базе данных и страницах. (Поскольку я думаю, что английский труднее говорить в некоторых местах, перевода нет).
< % If err.number <> 0, то response.clear select case err.number case 8 'Укажите номер ошибки' case else здесь, общая ошибка, если Isobject (objConnection), тогда, если objConnection.errors.count> 0, тогда %> < B> Объект подключения базы данных </b> <%для intloop = 0 to objconnection.errors.count - 1%> Ошибка №: <%= objconnection.errors (intloop) .number %> <br> Описание: <%= objConnection.errors (intloop) .description%> <br> Источник: <%= objconnection.errors (intloop) .source%> <br> sqlstate: <%= objconnection.errors ( intloop) .sqlstate %> <br> NativeRror: < %= objConnection.Errors (intloop) .nativeError %> <p> < %Следующий конец, если конец, если ошибка, если ошибка <> 0, то %> <b> Ошибка страницы Object </b> <br> Номер ошибки <%= err.number%> <br> Описание ошибки <%= err.description%> <br> source <%= err.source%> <br> LineNumber <%= Err.line %> <p> < %end, если конец выберите End, если %>
Приведенный выше пример позволяет нам справиться со многими проблемами, которые возникают в базе данных, которые также обычно используются в нашем ежедневном программировании! Мы также должны увидеть, что выбранная операция Case, который позволяет нам обрабатывать конкретные ошибки.
Перенаправление и обработка ошибок
Одна вещь, на которую мы должны обратить внимание, - это объект перенаправления, который мы часто используем. Итак, нам приходится иметь дело с этим, прежде чем повернуться, следующим образом:
Если err.number = 0 и objconnection.errors.count = 0, то response.clear response.redirect? Lt; url здесь>?
Сделать код более аккуратным
Чтобы сделать код более аккуратным, сначала поместите файл с ошибкой в файле Sant. Таким образом, вы можете использовать его в любом файле. Это также удобно для изменения.
Добавьте (после языкового объявления, конечно,) оператор «Ошибка возобновить следующее» в верхней части вашей программы.
Проверьте ошибки, прежде чем выполнить SQL.
Обработка ошибок также требовалась перед использованием перенаправления.
Позвольте вам обрабатывать ошибки, содержащие файлы в верхней части кода