私の質問のタイトルが正しく定式化されているかどうかわからないので、私が本当に意味することを説明するために、次の例を考えてみましょう:
と を作成し、QApplication
そのQWidget
上に を作成QPushButton
します。次に、次のようなボタンからのクリック シグナルにハンドラーをアタッチします。
void MyWidget::on_pushButton_clicked(){
//Never return
while(true);
}
最後に、アプリケーションのイベント ループを開始し、プログラムを実行してウィンドウが表示されたら、ボタンをクリックします。
私の場合、これはアプリケーション全体を停止させます。この時点での私の質問は、この種のハングアップがコードからアプリケーションで発生したことをどのように「検出」できるかということです。
シグナルハンドラーで返されないコードを書くのは悪い習慣であることは知っています。エラーを検出してエラーから回復したいので、この質問をします。本番環境での回復力を向上させるために、アプリケーションを完全に再起動する可能性があります。
ありがとう!