0으로 나누기는 하나의 예시일 뿐 멍청이가 커밋한 panic을 유발할만한 코드 단 한줄 때문에 전체 서비스가 다운되는 사태는 막을 수 없는 건가? 웹 서버 같은 경우 예측 못한 에러의 경우 500에러 응답하고 서버자체가 죽지 않게하는 그런거 - dc App
익명(175.209)2024-01-24 15:50
답글
모름fn main() { let n = 0; let t = thread::spawn(move || 1 / n); match t.join() { Ok(_) => unreachable!(), Err(e) => println!("{:?}", e), } println!("?");}이것하고 비슷한 코드는 만들어봤는데 저건 안 해봤음
프갤러 1(121.154)2024-01-24 16:12
답글
음 아무튼 공유 고맙소 - dc App
익명(175.209)2024-01-24 16:52
답글
catch_unwind 라고 있네. 일반적으론 result 타입으로 에러 핸들링 해야하지만 웹 서버 같은 경우는 request router handler 함수마다 캐치 하는것도 고려해봐야 - dc App
익명(175.209)2024-01-25 09:01
답글
오 하나 배워감
패닉이 발생할 정도의 문제라면 어지간하면 일단 죽이고 재시작하는 것이 낫다고 생각했는데 댓글을 보니까 필요한 때가 있겠네
님 전러협에 신고했습니다. 글 삭제해주세요.
뻗음
그래서 0이 들어갈 것 같으면 checked_div (
https://doc.rust-lang.org/std/primitive.i32.html#method.checked_div
)를 사용함
0으로 나누기는 하나의 예시일 뿐 멍청이가 커밋한 panic을 유발할만한 코드 단 한줄 때문에 전체 서비스가 다운되는 사태는 막을 수 없는 건가? 웹 서버 같은 경우 예측 못한 에러의 경우 500에러 응답하고 서버자체가 죽지 않게하는 그런거 - dc App
모름fn main() { let n = 0; let t = thread::spawn(move || 1 / n); match t.join() { Ok(_) => unreachable!(), Err(e) => println!("{:?}", e), } println!("?");}이것하고 비슷한 코드는 만들어봤는데 저건 안 해봤음
음 아무튼 공유 고맙소 - dc App
catch_unwind 라고 있네. 일반적으론 result 타입으로 에러 핸들링 해야하지만 웹 서버 같은 경우는 request router handler 함수마다 캐치 하는것도 고려해봐야 - dc App
오 하나 배워감 패닉이 발생할 정도의 문제라면 어지간하면 일단 죽이고 재시작하는 것이 낫다고 생각했는데 댓글을 보니까 필요한 때가 있겠네