Привет, есть ОШИБКА
Привет, есть ОШИБКА

При использовании программного обеспечения APP раньше появлялось следующее сообщение об ошибке. В качестве теста, увидев эту информацию, не могу не копнуть глубже, что тоже весьма интересно.

01

Из приведенного выше сообщения об ошибке вы можете получить как минимум следующую информацию:

  • Это очень недружелюбное напоминание для людей, не связанных с ИТ, что это, черт возьми?
  • Местоположение ошибки: по коду ошибки видно, что проблема возникает в базе подключения. Когда данные, соединение JDBC не может быть получено;
  • Используемый пул потоков: с помощью weblogic.jdbc.extensions.PoolLimitSQLException можно сделать вывод, что используется ресурс пула потоков на сервере WebLogic;
  • Причины ограничений пула соединений:проходитьаномальныйв информацииno resources currently available in poolappds to allocate to приложения» могут узнать, что в пуле соединений нет доступных ресурсов, которые можно было бы выделить приложению. Это может быть связано с тем, что ресурсы пула соединений полностью заняты или достигнут максимальный предел;
  • Предложение по решению: Решение, упомянутое в аномальном сообщении, — увеличить размер пула соединений и повторить попытку;
  • Используйте Spring и WebLogic для разработки приложений. Судя по типу и информации о стеке аномального приложения, для разработки оно использует среду Spring и сервер WebLogic.

Полезна ли приведенная выше информация? Для обычных людей это бесполезно, но для сотрудников службы безопасности проблема может быть немного большой. Посоветовавшись с сотрудниками службы безопасности компании, зная этот сценарий, вы можете продолжить проводить дополнительные тесты и получать полезную информацию. Не осмелюсь спрашивать больше об информации и о том, как она воспроизводится.

02

На самом деле эта проблема заключается в том, что системное исключение не перехватывается или исключение перехватывается, но не обрабатывается и выбрасывается непосредственно во внешний интерфейс. Тогда внешний интерфейс не обрабатывает его и выбрасывает непосредственно на страницу. Аналогичный код выглядит следующим образом:

Правильный метод обработки должен включать перехват исключений, регистрацию информации об ошибках, удобные подсказки пользователю и защиту конфиденциальной информации, как показано на следующем рисунке:

Запишите реальную информацию об ошибке в журнал, а затем выведите более понятную информацию пользователю на основе указанного ERROR_CODE.

В то же время SpringBoot также поддерживает глобальную обработку исключений через @ControllerAdvice+@ExceptionHandler, чтобы избежать дублирования кода.

03

Для студентов, сдающих тест, вы можете учитывать следующие аспекты:

  • Граничный тест: варианты использования дизайн-теста для крайних случаев, которые могут вызвать аномальные события. Например, в базе При запросах данных вы можете проверить, приведет ли отсутствие необходимых полей в операторе запроса к аномальному состоянию, при тестировании массива - вызовет ли доступ к индексу, длина которого превышает длину массива, правильное аномальное выход за пределы массива, и т. д. на.
  • Тест аномальной ситуации: Для различных типов аномальных ситуаций варианты использования дизайнтеста. Например, при файловых операциях можно проверить, вызовет ли попытка чтения несуществующего файла соответствующую аномальную ошибку.
  • Недопустимый тест ввода: аномальный случай использования дизайнерского теста для проверки ввода. Например, когда пользователь вводит имя пользователя, его можно спросить, вызовет ли ввод имени пользователя, длина которого превышает допустимую, соответствующую аномальную проверку.
  • Тест одновременного доступа: тест Может ли аномальное событие быть правильно зафиксировано и обработано, когда несколько потоков одновременно обращаются к общим ресурсам. Например, при использовании многопоточности для базы При работе с данными моделируйте несколько потоков, одновременно выполняющих операции запроса, чтобы проверить, можно ли правильно обрабатывать аномальный одновременный доступ.
  • Тест сообщения об ошибке: тестномальный проверяет, является ли сообщение об ошибке, возвращаемое в коде, точным и понятным. Например, если проверка ввода не удалась, убедитесь, что в возвращаемом сообщении об ошибке четко указано, почему проверка не удалась.

При разработке этих тестовых примеров обратите внимание на различные условия исключений и пути обработки ошибок, чтобы гарантировать, что код может правильно перехватывать и обрабатывать исключения, а не просто поглощать исключения через блоки перехвата.

04

Конечно, для этого нет необходимости выходить в интернет. Данная статья предназначена исключительно для обсуждения. На самом деле полностью охватить такие вопросы путем тестирования и проверки невозможно, да и это очень неэффективно.

Лучшее решение проблем такого типа — стандартизация кода и своевременная проверка кода. Каждый сосредотачивается на своих областях.

Исследования и разработки следуют существующим стандартам кодирования и практикам программирования для решения технических проблем.

Тестирование фокусируется на разработке сценариев и исследовательском тестировании для решения проблем покрытия бизнеса.

взаимное поощрение.

boy illustration
Учебное пособие по Jetpack Compose для начинающих, базовые элементы управления и макет
boy illustration
Код js веб-страницы, фон частицы, код спецэффектов
boy illustration
【новый! Суперподробное】Полное руководство по свойствам компонентов Figma.
boy illustration
🎉Обязательно к прочтению новичкам: полное руководство по написанию мини-программ WeChat с использованием программного обеспечения Cursor.
boy illustration
[Забавный проект Docker] VoceChat — еще одно приложение для мгновенного чата (IM)! Может быть встроен в любую веб-страницу!
boy illustration
Как реализовать переход по странице в HTML (html переходит на указанную страницу)
boy illustration
Как решить проблему зависания и низкой скорости при установке зависимостей с помощью npm. Существуют ли доступные источники npm, которые могут решить эту проблему?
boy illustration
Серия From Zero to Fun: Uni-App WeChat Payment Practice WeChat авторизует вход в систему и украшает страницу заказа, создает интерфейс заказа и инициирует запрос заказа
boy illustration
Серия uni-app: uni.navigateЧтобы передать скачок значения
boy illustration
Апплет WeChat настраивает верхнюю панель навигации и адаптируется к различным моделям.
boy illustration
JS-время конвертации
boy illustration
Обеспечьте бесперебойную работу ChromeDriver 125: советы по решению проблемы chromedriver.exe не найдены
boy illustration
Поле комментария, щелчок мышью, специальные эффекты, js-код
boy illustration
Объект массива перемещения объекта JS
boy illustration
Как открыть разрешение на позиционирование апплета WeChat_Как использовать WeChat для определения местонахождения друзей
boy illustration
Я даю вам два набора из 18 простых в использовании фонов холста Power BI, так что вам больше не придется возиться с цветами!
boy illustration
Получить текущее время в js_Как динамически отображать дату и время в js
boy illustration
Вам необходимо изучить сочетания клавиш vsCode для форматирования и организации кода, чтобы вам больше не приходилось настраивать формат вручную.
boy illustration
У ChatGPT большое обновление. Всего за 45 минут пресс-конференция показывает, что OpenAI сделал еще один шаг вперед.
boy illustration
Copilot облачной разработки — упрощение разработки
boy illustration
Микросборка xChatGPT с низким кодом, создание апплета чат-бота с искусственным интеллектом за пять шагов
boy illustration
CUDA Out of Memory: идеальное решение проблемы нехватки памяти CUDA
boy illustration
Анализ кластеризации отдельных ячеек, который должен освоить каждый&MarkerгенетическийВизуализация
boy illustration
vLLM: мощный инструмент для ускорения вывода ИИ
boy illustration
CodeGeeX: мощный инструмент генерации кода искусственного интеллекта, который можно использовать бесплатно в дополнение к второму пилоту.
boy illustration
Машинное обучение Реальный бой LightGBM + настройка параметров случайного поиска: точность 96,67%
boy illustration
Бесшовная интеграция, мгновенный интеллект [1]: платформа больших моделей Dify-LLM, интеграция без кодирования и встраивание в сторонние системы, более 42 тысяч звезд, чтобы стать свидетелями эксклюзивных интеллектуальных решений.
boy illustration
LM Studio для создания локальных больших моделей
boy illustration
Как определить количество слоев и нейронов скрытых слоев нейронной сети?
boy illustration
[Отслеживание целей] Подробное объяснение ByteTrack и детали кода