Блок выгоды, не ловя исключение

Предположим, что ваша модель называется Note.php

. Предположим, в вашей таблице notes есть внешний ключ note_status_id и note_type_id

. Добавьте связь в основную модель Note.php.

public function status()
{
    return $this->belongsTo(NoteStatus::class);
}

public function notes()
{
    return $this->belongsTo(NoteType::class);
}

Вы можете получить данные с такими отношениями

Note::with('status','notes')
     ->get()

Для получения дополнительной информации о взаимоотношениях Laravel Laravel Eloquent: Отношения

5
задан Jeff Atwood 3 January 2009 в 12:36
поделиться

4 ответа

Форма. Событие загрузки ведет себя тот же путь как большинство других событий в Windows Forms. Это диспетчеризируется циклом сообщения, в этом случае когда Windows отправляет сообщение WM_SHOWWINDOW. Существует обработчик исключений в цикле сообщения, который препятствует тому, чтобы неперехваченное исключение завершило цикл сообщения. Тот обработчик исключений повышает Приложение. Событие ThreadEvent. Обработчик стандартных событий отображает диалоговое окно необработанного исключения.

Короче говоря, Вы не можете поймать исключение, повышенное в событии Load в Вашем обработчике нажатий кнопки. Кроме ловли и обрабатывания исключений в самом обработчике событий Загрузки, очень трудно чтобы сделать правильно, я рекомендовал бы добавить открытый метод для формы. Чему-то нравится, Инициализируют (). Переместите код от своего события Load в тот метод. Вызов Инициализирует () после вызова Шоу () метод, исключения являются теперь Вашими для ловли.

11
ответ дан 13 December 2019 в 05:43
поделиться

Я приношу извинения за C# (я не знаю синтаксис Vb),

Вы делающий что-то вроде этого:

  ChildForm child = new ChildForm();
  try {
      child.Show();
  }
  catch(Exception ex)
  {.....}

Если так, я полагаю, что случай Load произошел бы на Новом, не Шоу (); (Шоу стреляло бы, Активируются),

0
ответ дан 13 December 2019 в 05:43
поделиться

У меня есть та же проблема. То, что я в конечном счете сделал, должно было поймать все исключения. В C#:

Application.ThreadException += new ThreadExceptionEventHandler(MyHandler);

И затем покажите форму.

Я хотел бы услышать, есть ли у кого-либо лучшее решение.

1
ответ дан 13 December 2019 в 05:43
поделиться

Новое окно имеет свой собственный поток, который делает его собственную загрузку. Для проверки этого можно попытаться включить a Thread.Sleep в течение нескольких секунд в Form2_Load перед исключением. Ваше основное окно потока должно продолжить выполнение перед ударом исключения.

0
ответ дан 13 December 2019 в 05:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: