Найдено результатов: 8

Использование свойства объекта по умолчанию для свойства метода

Я пытаюсь сделать это (что приводит к неожиданной ошибке T_VARIABLE):

public function createShipment($startZip, $endZip, $weight = $this->getDefaultWeight()){}

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

public function createShipment($startZip, $endZip, weight = 0){
    if($weight <= 0){
        $weight = $this->getDefaultWeight();
    }
}

php   parameters   error-handling    

475   4   16:03, 1st July, 2020


Уменьшение количества повторяющихся кодов обработки ошибок в C#?

Я никогда не был полностью доволен тем, как работает обработка исключений, есть много исключений и try / catch приносит в таблицу (размотка стека и т. д.), но, похоже, в этом процессе нарушается большая часть модели OO.

В любом случае, вот в чем проблема:

Допустим, у вас есть какой-то класс, который обертывает или включает сетевые операции с файлом IO (например, чтение и запись в какой-то файл по какому-то конкретному пути UNC). По разным причинам вы не хотите, чтобы эти операции IO завершились неудачей, поэтому, если вы обнаружите, что они завершились неудачей, вы повторяете их и продолжаете повторять, пока они не завершатся успешно или вы не достигнете тайм-аута. У меня уже есть удобный класс RetryTimer, который я могу создать и использовать, чтобы перевести текущий поток в спящий режим между повторными попытками и определить, когда истек период ожидания и т. д.

Проблема в том, что у вас есть куча операций IO в нескольких методах этого класса, и вам нужно обернуть каждую из них в логику try-catch / retry.

Вот пример фрагмента кода:

RetryTimer fileIORetryTimer = new RetryTimer(TimeSpan.FromHours(10));
bool success = false;
while (!success)
{
    try
    {
        // do some file IO which may succeed or fail
        success = true;
    }
    catch (IOException e)
    {
        if (fileIORetryTimer.HasExceededRetryTimeout)
        {
            throw e;
        }
        fileIORetryTimer.SleepUntilNextRetry();
    }
}

Итак, как избежать дублирования большей части этого кода для каждой операции file IO в классе? Мое решение состояло в использовании анонимных блоков делегатов и единственного метода в классе, который выполнял переданный ему блок делегатов. Это позволило мне делать подобные вещи другими методами:

this.RetryFileIO( delegate()
    {
        // some code block
    } );

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

c#   exception   error-handling    

530   4   16:03, 1st July, 2020


Глобальная обработка исключений для элемента управления winforms

При работе над ASP.NET 1.1 проектами я всегда использовал Global.asax, чтобы поймать все ошибки. Я ищу аналогичный способ поймать все исключения в пользовательском элементе управления Windows Forms, который в конечном итоге является размещенным элементом управления IE. Каков правильный способ сделать что-то подобное?

winforms   error-handling   user-controls    

523   5   16:03, 1st July, 2020


Как вы регистрируете ошибки (исключения) в ваших приложениях ASP.NET?

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

В моей компании мы привыкли иметь свой собственный ErrorMailer, ловя все в Global.asax Application_Error. Он был "Ok", но не очень гибким и настраиваемым.

Мы недавно переключились на NLog. Это гораздо более настраиваемо, мы можем определить различные цели для ошибок, фильтровать их, буферизировать их (еще не пробовали). Это очень хорошее улучшение.

Но недавно я обнаружил, что для этой цели в фреймворке .Net есть целое пространство имен : System.Web.Management , и его можно настроить в разделе healthMonitoring web.config.

Вы когда-нибудь работали с мониторингом здоровья .Net? Каково ваше решение для регистрации ошибок?

asp.net   error-handling   nlog   health-monitoring    

596   8   06:27, 17th August, 2020


Есть ли способ обработки ошибок из объектов COM в RDML?

Есть ли способ обработки ошибок из объектов COM в RDML? Например, при вызове методов Word VBA, таких как PasteSpecial, возвращается ошибка и приложение LANSA завершает работу. Я не могу найти ничего в документации, чтобы разрешить обработку этих ошибок.

На самом деле, обработка ошибок вообще является слабым местом для LANSA и RDML, но это другая тема.

com   error-handling    

458   2   03:02, 11th August, 2020


Как лучше всего сообщать об ошибках из рабочего процесса SharePoint?

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

UPD: в идеале я хотел бы поместить рабочий процесс в состояние ошибки и записать сообщение в журнал рабочего процесса. Это кажется невозможным. Как можно ближе подобраться к нему? Я хочу, чтобы повторно используемый раствор,то, что легко для пользователей, чтобы настроить, когда через мои пользовательские действия в SharePoint дизайнер.


Добавил больше деталей к вопросу.

@mauro это заботится о сохранении ошибки, но как я могу отобразить ошибку пользователю таким образом, чтобы это имело смысл?

@AdamSane это кажется довольно хрупким решением. Это не вопрос настройки этого один раз на одном сайте. Мне нужно что-то, что другие могут добавить, используя SPD.

sharepoint   error-handling   moss   workflow    

452   4   04:12, 25th August, 2020


Как я могу регистрировать необнаруженные исключения в PHP?

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

php   exception   error-handling   error-logging    

1553   7   04:29, 8th August, 2020


Как поймать SQLServer тайм-аут исключения

Мне нужно специально поймать SQL исключений таймаута сервера, чтобы их можно было обрабатывать по-разному. Я знаю, что могу поймать SqlException, а затем проверить, содержит ли строка сообщения "Timeout", но мне было интересно, есть ли лучший способ сделать это?

try
{
    //some code
}
catch (SqlException ex)
{

    if (ex.Message.Contains("Timeout"))
    {
         //handle timeout
    }
    else
    {
         throw;
    }
}

c#   .net   sql-server   error-handling    

546   4   10:46, 11th August, 2020