unawaited_return_in_try_block: try 블록 안에서 'await' 없이 Future를 반환하지 말아요
unawaited_return_in_try_block: try 블록 안에서 'await' 없이 Future를 반환하지 말아요
분석기가 내보내는 진단에는 이름이 있어요. unawaited_return_in_try_block는 async 함수의 try 블록 안에서 Future를 await하지 않고 반환할 때 알려주는 진단이에요. 원문의 요지는 "try 블록 안에서 'await' 없이 'Future'를 반환하고 있다"는 내용이에요.
본문
설명
분석기는 async 함수에서 try 블록 안에 있는 Future를, 돌려받은 Future를 await하지 않고 반환할 때 이 진단을 만들어요.
예시
다음 코드는 futureString이 돌려주는 Future를 await 없이 반환해서 이 진단을 만들어요. 이렇게 하면 Future가 던지는 예외가 catch 블록에 잡히지 않아서, 예상치 못한 동작이 생길 수 있어요.
Future<String> futureString(Future<String> value) async {
try {
return value;
} catch (e) {
print(e);
return 'default';
}
}
흔한 해결 방법
반환하는 Future 앞에 await를 붙여요.
Future<String> futureString(Future<String> value) async {
try {
return await value;
} catch (e) {
print(e);
return 'default';
}
}