Когда мы знакомы с ASP, мы найдем его очень простым, поэтому многие разработчики не будут думать о том, как справиться с ошибками. Большинство коммерческих сайтов, написанных в ASP, игнорируют ошибки. Итак, давайте сейчас поймем, как справиться с ошибками ASP.
Краткое введение
ASP настолько прост, что многие разработчики не думают об обработке ошибок. Правильная обработка ошибок может сделать ваше приложение более разумным. Я видел много коммерческих сайтов, написанных на ASP, большинство из которых игнорируют обработку ошибок.
Есть три основных типа ошибок:
Ошибка компиляции:
Этот вид ошибок происходит в целом из -за проблемы синтаксиса кода.
ASP прекратил работать из -за ошибки компиляции.
Запустить ошибку
Эта ошибка возникает, когда вы готовы запустить ASP.
Например: если вы пытаетесь присвоить значение переменной, но оно выходит за рамки, разрешенную переменной.
Логическая ошибка
Логические ошибки являются наиболее сложными для обнаружения. Этот вид ошибок часто является структурной ошибкой, которая не может быть обнаружена компьютером.
Это требует от нас тщательно проверить наш код.
Поскольку ошибки компиляции обычно происходят вместе с логическими ошибками и могут быть отображаются, мы беспокоимся о ошибке работы. Все это завершает работу ASP и оставляет кучу очень недружелюбного текста для пользователя.
Итак, как мы справляемся с ошибками операции! ? Давайте сначала посмотрим на единственную команду ошибки, предоставленную нам ASP - на ошибке резюме следующим (я хотел бы напомнить новичкам, что в следующих операторах ASP нет только в ошибке, и на операторных операторах RESUME нет никаких операторов RESUME RESUME). Если вы не используете при Оширке резюме следующие операторы, будут возникнуть все ошибки работы. Это фатально, тогда код ошибки будет «отображен» для пользователя, и программа ASP также остановится.
Вот код ошибки:
Microsoft Ole DB -провайдер для Drivers Drivers Error 80004005
[Microsoft] [ODBC Driver Manager] Имя источника данных не найдено и не указан драйвер по умолчанию
/test.asp, строка 60
Когда мы используем оператор RESUME OR RESUME в верхней части программы, все ошибки будут проигнорированы, и программа автоматически выполнит следующее оператор. Таким образом, программа будет полностью выполнена, и пользователь не увидит сообщение об ошибке после возникновения ошибки. Но есть и недостатки таким образом, то есть, если программа не выполняется, как вы представляете, вам будет трудно узнать, что не так, поэтому вам придется иметь дело с ошибками, где это необходимо.
Обработка ошибок
В ASP лучший способ справиться с ошибками - это поставить код в нижней части программы для обработки ошибок. Я также рекомендую использовать буферы в каждой программе ASP. Таким образом, если произойдет ошибка, страница остановится, и содержимое страницы будет очищено, чтобы пользователь не увидел сообщение об ошибке, и на вас будет меньше жалоб! Вот пример:
< %@ Language = "vbscript" %>
<% 'SET Buffer на True
Response.buffer = true
'Запуск ошибок обработки
При ошибке резюме следующим
%>
<% 'Ошибка обработки
Если err.number <> 0, тогда
'Очистить страницу
Response.clear
'Показать сообщение об ошибке пользователю
%>
<html>
<Голова>
<Title> </title>
</Head>
<Body bgcolor = "#c0c0c0">
<Font face = "arial"> произошла ошибка при выполнении этой страницы ASP <br>
Пожалуйста, сообщите следующую информацию в стойку поддержки <p>
<b> Объект ошибки страницы </b> <br>
Номер ошибки: < %= err.number %> <br>
Сообщение об ошибке: < %= err.description %> <br>
Файл ошибок: < %= err.source %> <br>
Строка ошибок: < %= err.line %> <br>
</Font>
</Body>
</Html>
<%Конец, если%>
Как вы можете видеть выше, я сначала установил на резюме ошибки, чтобы ошибка не повлияла на выполнение программы.
Обработка ошибок и база данных
Выполнение добавления баз данных к обработке ошибок очень сложно. Если у нас есть программа со многими командами для добавления записей в базу данных, если вставка/обновление выполняется в нижней части программы, если наша ошибка произойдет раньше, то все будет закончено! Мы добавим сообщение об ошибке в базу данных. Поскольку мы использовали при ошибке резюме следующим, все ошибки были проигнорированы! Даже если есть ошибка, программа все равно будет добавлять данные в базу данных.
Чтобы избежать этой ситуации, мы должны сначала сделать несколько хитростей. Правильный способ справиться с этим заключается в следующем:
Если err.number = 0 и objconnection.errors.count = 0 тогда
'Заявление может быть выполнено здесь только потому, что нет ошибок
Установить rstresults = dbdata.execute (txtsql)
Конец, если
Более продвинутые решения
Когда возникает ошибка, вы также можете отобразить больше сообщений об ошибках. Ниже приведен пример обработки ошибок как базы данных, так и страниц. С этим мы можем обнаружить все ошибки в нашей программе одновременно. (Поскольку я думаю, что английский труднее говорить в некоторых местах, перевода нет).
<%
Если err.number <> 0, тогда
Response.clear
Выберите case err.number
Случай 8 'Укажите неправильный номер
'Устранение неполадок на пользовательские ошибки здесь
Case Else 'Общая ошибка
Если isobject (objconnection), тогда
Если objconnection.errors.count> 0, тогда
%>
<b> Объект подключения базы данных </b>
< % Для intloop = 0 до 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>
<% Далее
Конец, если
Конец, если
Если err.number <> 0, тогда
%>
<b> Объект ошибки страницы </b> <br>
Номер ошибки < %= err.number %> <br>
Описание ошибки < %= err.description %> <br>
Источник < %= err.source %> <br>
Leannemance < %= err.line %> <p>
<% End if
Конец выбора
Конец, если
%>
Приведенный выше пример позволяет нам справиться со многими проблемами, которые возникают в базе данных, которые также обычно используются в нашем ежедневном программировании! Мы также должны увидеть, что выбранная операция Case, который позволяет нам обрабатывать конкретные ошибки.
Перенаправление и обработка ошибок
Одна вещь, на которую мы должны обратить внимание, - это объект перенаправления, который мы часто используем. Если на странице появляется объект перенаправления, то обработка ошибок потеряет свое значение. Итак, нам приходится иметь дело с этим, прежде чем повернуться, следующим образом:
Если err.number = 0 и objconnection.errors.count = 0 тогда
Response.clear
Response.redirect? Lt; url здесь>?
Конец, если
Сделать код более аккуратным
Чтобы сделать код более аккуратным, сначала поместите файл с ошибкой в файле Sant. Таким образом, вы можете использовать его в любом файле. Это также удобно для изменения.
Добавьте оператор RESUME RESUME OR ERROUE в верхней части вашей программы (после того, как языковая объявление, конечно,).
Проверьте ошибки, прежде чем выполнить SQL.
Обработка ошибок также требовалась перед использованием перенаправления.
Позвольте вам обрабатывать ошибки, содержащие файлы в верхней части кода
Это конец содержания метода обработки ошибок ASP. Я надеюсь, что содержание этой статьи поможет для каждого обучения или работы каждого.