728x90
https://stackoverflow.com/questions/13579982/how-to-create-a-custom-exception-and-handle-it-in-dart
다음과 같이 쓸 수 있다! CustomException은 일단 util 쪽에 넣어뒀는데 더 적당한 곳이 보이면 옮기려고 한다.!
class CustomException implements Exception {
String cause;
CustomException(this.cause);
}
void requestAuth() async {
final mobisService = Get.find<MobisService>();
loading.value = true;
try {
bool isOk = false;
if (emailAuth.value) {
final email = emailInput.text.trim();
if (email.isEmpty) throw CustomException('no_email');
if (!email.isEmail) throw CustomException('email_format');
isOk = await mobisService.sendValidationEmail(email);
} else {
final mobile = mobileInput.text.trim();
if (mobile.isEmpty) throw CustomException('no_mobile');
if (!mobile.isNumericOnly) throw CustomException('mobile_format');
isOk = await mobisService.sendValidationSms(mobile);
}
if (!isOk) throw CustomException('server_error');
showToastMessage('인증번호가 발송되었습니다.');
changeStep(3);
} on CustomException catch (e) {
switch (e.cause) {
case 'no_email':
showToastMessage('이메일 주소를 입력해 주세요.');
break;
case 'email_format':
showToastMessage('이메일 형식을 확인해 주세요.');
break;
case 'no_mobile':
showToastMessage('휴대폰 번호를 입력해 주세요.');
break;
case 'mobile_format':
showToastMessage('휴대폰 번호 형식을 확인해 주세요.');
break;
default:
showToastMessage('인증번호가 발송되지 않았습니다.');
}
} finally {
loading.value = false;
}
}
728x90
'개발 > Flutter' 카테고리의 다른 글
실시간으로 가져오려면 변수 저장하지 말고 함수로 가져오기 (0) | 2022.11.16 |
---|---|
flutter debug wireless (0) | 2022.11.16 |
flutter version 차이로 생기는 오류 (0) | 2022.11.14 |
json fommatter (0) | 2022.11.13 |
freezed, code generate model class, code generator (0) | 2022.11.13 |