質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Flask

FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

2555閲覧

Webアプリにおけるエラーハンドリングについて

aria0718

総合スコア46

Flask

FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2015/10/28 13:59

趣味でWebアプリを作成しています。
Webアプリにおいて以下のようなケースでは
どのようにエラーハンドリングするのが一般的なのでしょうか?

状況

・利用しているエクステンションでは以下の処理を行っています。

  1. ユーザ登録を行うと、メールアドレスやパスワードをDBに保存
  2. ユーザに確認メールを送信
  3. ユーザが確認メールに記載されているリンクをクリックするとユーザがアクティベートされる。

知りたいこと

上記1の処理の際にDBとの接続が確立できない場合、
例外(Connection Refused)が上がり、500 Internal Server Errorとなります。

同様に上記2の処理の際にメールサーバとの接続が確立できない場合、
例外(Connection Refused)が上がり、500 Internal Server Errorとなります。

そもそもメールサーバやDBへの接続の際にコネクションが確立できていなかったら
処理しないようプログラム側で吸収するのか、
はたまたそういったメールやDBは落ちないことが普通で、それが切れれば
500Errorが発生するのは普通とするのか、一般的にはどのような処理を施すのでしょう?

ちなみに、エラー発生時のFAQや確認メールの再送手順などは用意しています。

参考

使っているエクステンションは以下のものです。
Flask-Security - GitHub
Flask-Security - Document

ご回答いただけますと幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

メールやDBは落ちないことが普通ですね。
なので、接続できなかったりしたら500Errorが発生するのは普通です。

その際にログへ詳細な情報を落とす用意にし、
発生回数が一定の閾値を超えたら運用者に通知できる仕組みを用意しておくと良いかと思います。

想定外のエラーなので早期に根本原因を見つけ出し、対処することが大事だったりします。
そもそも落ちる状態にしてはいけません。

あと500エラーが発生したら、Internal Server Error の表記だけでは不親切なので
エラーページを用意してウェブサーバでリダイレクトさせるよう設定しておくと良いでしょう。

投稿2015/10/28 14:27

kurosawa

総合スコア780

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

aria0718

2015/10/28 14:52

ご回答有り難うございます! なるほど、やはりインフラ系のサーバやNWは切れないこと、落ちないことが前提なのですね。もやもやが晴れました! > 想定外のエラーなので早期に根本原因を見つけ出し、対処することが大事 そのとおりですね。原因さえわかればインフラ管理者に連絡をして、そっちを直してもらうのが先決ですね!適切なロギングについて再考してみます。 > エラーページを用意してウェブサーバでリダイレクトさせるよう設定しておくと良いでしょう これはユーザ目線でということですよね? 例えばWebアプリの管理者へのコンタクト先やFAQへのリンクを用意するのがベターでしょうか。ここは自分でも考えて、ユーザにわかりやすいエラーページを用意してみます。 改めてありがとうございます。
kurosawa

2015/11/04 12:46

返信遅れてすみません。 もやもやが晴れていただけて、こちらも嬉しいですw >> エラーページを用意してウェブサーバでリダイレクトさせるよう設定しておくと良いでしょう >これはユーザ目線でということですよね? おっしゃるとおりです。 ユーザは ブラウザに Internal Server Error と表示されてもチンピンカンプンなので ごめんなさい。システムがいけてないです。と何らかの画面を用意してあげることで (言い過ぎかもしれませんが)サイト品質・ブランド価値を落とさないことができます。 apacheならば、 ErrorDocument 503 /sorry.html などの設定で、レスポンスコードごとに指定したページに遷移させることが可能です。 お試しくださいませ。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問