teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

文章を追加

2017/03/22 23:49

投稿

hojo
hojo

スコア195

title CHANGED
File without changes
body CHANGED
@@ -68,7 +68,7 @@
68
68
 
69
69
  しかしこうしてしまうとキャッチしたエラーを種類別に判定することができなくなってしまいますよね?
70
70
 
71
- もちろん`e.message`の内容を利用することで不可能では無いと思っていますが、エラーメッセージは同じエラーでも内容が変わってしまうことがあると思うんです。
71
+ もちろん`e.message`の内容を利用することでエラー別に適切な処理を行うことは不可能では無いと思っていますが、エラーメッセージは同じエラーでも内容が変わってしまうことがあると思うんです。
72
72
 
73
73
  ```
74
74
  // 1234の値が状況によって変わるのでe.massegeをエラー種類判定に使えない
@@ -103,8 +103,6 @@
103
103
 
104
104
  // --------------------------------
105
105
 
106
- const AuthError = require('AuthError')
107
-
108
106
  app.use((ctx, next) => {
109
107
  ...
110
108
  if( !isAdmin ) {
@@ -115,8 +113,15 @@
115
113
  })
116
114
  ```
117
115
 
118
- 上記の方法では```e.name```の内容を書き換える必要があるので1行でエラーをthrowすることができが不満ですが、それ以外は満足のいくものになっていると思い
116
+ 上記の方法では```e.name```の内容を書き換える必要があるのでカスマムエラークラスを作成していた時と比較して1行でエラーをthrowすることができた部分4行に膨れ上がっているため若干不満ですが、それ以外は満足のいくものになした
119
117
 
120
- かし、このような方法で例外処理をもよのでしょうか?例えば、今作成していモジュールはプロジェクト専用モジュールが、いつしかそのほかのプロジェクトでもそのモジュールが使えるのではないか?というようなことが起こた時そのモジュール内部でのようなnameを書き換えた特殊な例外が発生されるこは問題になるのではないか?という疑問拭えませんでした
118
+ し、これでいこう!と思ったですが、本当にこれでいいのだろうか?皆様はどのよう例外処理を行なっているのだろうということが気になて前進むことができません。
121
119
 
120
+ 本当にこのような方法で例外処理をしてもよいのでしょうか?
121
+
122
+ 例えば、このような```e.name```を書き換える方法を使って例外を投げるモジュールを作成した場合、そのモジュールが、他のプロジェクトで利用することになった場合に問題は発生しないのだろうか?という新たな疑問が発生しました。
123
+
122
- 一般的に例外処理はどのように行えばよいのでしょうか?
124
+ そもそも、一般的に例外処理はどのように行えばよいのでしょうか?
125
+ 検索したのですが、あまりにも記事が出てこないので質問させていただきました。
126
+
127
+ よろしくお願いいたします。