INDEX
はじめに
![](https://techlog.site/wp-content/uploads/2024/02/nwe_icon.jpeg)
本書籍でError処理/例外処理について学びました!
その結果を記録します。
![programming_typescript](https://techlog.site/wp-content/uploads/2024/05/picture_large978-4-87311-904-5.jpeg)
![programming_typescript](https://techlog.site/wp-content/uploads/2024/05/picture_large978-4-87311-904-5.jpeg)
結論
- 単純にErrorを知らせる事を求めるなら = nullを返す
- なぜ失敗したのかについてより多くの情報を求めるなら = 例外をスローする/例外を返す
- 起こり得るすべての例外情報を強く望むなら = 例外を返す
- 少ない記述で例外処理を求めるなら = 例外をスローする
1. nullを返す
const parse = (birthday: string): Date => {
let data = new Date(birthday);
if (isVaild(birthday)) {
return null;
}
return data;
}
2. 例外をスローする
const parse = (birthday: string): Date => {
let data = new Date(birthday);
if (isVaild(birthday)) {
throw new RangeError('Enter a data in the form YYYY/MM/DD');
}
return data;
}
3. 例外を返す
/**
* @throw {InvaildDateFormatError) ユーザーが誕生日を誤って入力した
*/
const parse = (birthday: string): Date | InvaildDateFormatError => {
let data = new Date(birthday);
if (isVaild(birthday)) {
return new InvaildDateFormatError('Enter a data in the form YYYY/MM/DD');
}
return data;
}