The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Каталог документации / Раздел "Программирование, языки" / Оглавление документа
next up previous contents
Next: Работа со смешанными языками. Up: С++ Previous: Коммуникаторы.   Contents

Исключения

Интерфейс C++ для MPI включает в себя стандартный обработчик ошибок
[]MPI::ERRORS_THROW_EXCEPTIONS для использования с функциями-членами Set_errhandler().
MPI::ERRORS_THROW_EXCEPTIONS может быть установлен или получен только функциями С++. Если программа, написанная на другом языке при выполнении вызывает ошибку, вызывающую обработчик ошибок MPI::ERRORS_THROW_EXCEPTIONS, исключение будет передано выше через стек вызова, пока код С++ его не перехватит. Если такого кода нет, поведение не определено. В многопоточных средах, или в случае возникновения ошибки в неблокирующей функции MPI во время ее фонового выполнения, поведение зависит от реализации.

Обработчик ошибок MPI::ERRORS_THROW_EXCEPTIONS заставляет программу инициировать
MPI::Exception для любого кода возврата MPI кроме MPI::SUCCESS. Внешний интрефейс для класса MPI::Exception определен следующим образом:

namespace MPI {
  class Exception {
  public:

    Exception(int error_code);

    int Get_error_code() const;
    int Get_error_class() const;
    const char *Get_error_string() const;
  };
};
Совет разработчикам: Исключение будет сгенерировано внутри тела функции
MPI::ERRORS_THROW_EXCEPTIONS. Предполагается, что после генерации исключения управление будет возвращено пользователю. Некоторые функции MPI определяют в параметрах некоторую возвращаемую информацию в случае возникновения ошибки при определенном MPI_ERRORS_RETURN. Тот же тип возвращаемой информации должен определен и для возникших исключений. Например, MPI_WAITALL помещает код ошибки каждого запроса в соответствующее место статусного массива и возвращает код ошибки MPI_ERR_IN_STATUS. При использовании MPI::ERRORS_THROW_EXCEPTIONS предполагается что перед генерацией исключения в массиве статуса будут установлены соответствующим образом коды ошибок. []



Alex Otwagin 2002-12-10



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру