진짜 모름
나 첫회사 go 쓰는 회사 들어가서 일하다가
요번에 이직하면서 자바 스프링 하는 회사로 왔는데 (자바 학부생때 해보고 ㄹㅇ 한번도 안해봄)
내가 안익숙해서 그런지는 몰라도
자바는 함수 호출하면 이새끼가 안에서 에러를 리턴하는지 안하는지 존나 귀찮게 하나하나 타서 들어가봐야앎
예를들면
a() -> b() -> c() -> d() 식으로 호출한다치면 d에서 exception이 발생할수 있는데
try catch를 a에서 하면 이 에러가 b에서 발생하는지 c에서 발생하는지 d에서 발생하는지 존나 귀찮게 하나하나 타서 들어가봐야 알 수 있음
이게 좀만 depth가 깊어져도 걍 한숨나옴
go 같은 경우는
if err := b(); err != nil {
// do something
}
이런식으로 b 호출할때 에러 생길수 있다는걸 바로 알 수 있는데 ㅇㅇ (b에서도 c호출할때 이런식으로 체크할거고 c에서도 d호출할때 이렇게 체크할테니까)
어디서 에러가 날 수 있는지 한눈에 바로 알 수 있음
난 go 에러 체크 존나 편한거 같은데
이게 습관이 되서 그런거임?
자바 try catch 는 일단 에러가 발생하는데 그걸 기다렸다가 한참 나중에 try catch로 묶어서 처리한다는 개념 자체를 못이해하겠음
trycatch는 예외 좆까하고 코딩해도 되는데 err value는 명시적 처리를 강요해서 귀찮데
err != nil 에 대한 거부감은 초기 진입할땐 다 느낌
문법이 병신같잖아 에러를 완전히 first class로 올리든지 아니면 좀 더 명시적으로 하든지 Go 안 배웠거나 그냥 제 3자 입장에서 보면 추한 문법인건 팩트임
https://go.dev/blog/errors-are-values
go
에서 에러는 값이라 사실상 first class 맞아
문법이 병신같잖아 ㅇㅈㄹ ㅋㅋ 깔꺼면 근거있게 까던가 무지성 억까하고있네 ㅋㅋ
그래서 게이가 보기에는 try catch는 문법적으로 좋고~?
try catch보다 나은점도 있긴한데 문법이 너무 장황함 러스트처럼 문법적 설탕 넣었으면 그나마 괜찮을텐데
러슬람 러들러들
솔까 try catch보다 golang 방식이 훨 낫다고 본다. 나도 글쓴이 말대로 try catch는 함수 내부를 봐야만 알 수 있는게 별로라고 생각함.
고슬람 고들고들
좆같으니까
나도 솔직히 좋음. Google abseil 보면 예외 안던지고 return state, error 반환하도록 하는데 이게 맞지. 이걸 언어차원에서 강제한 golang은 그저 빛
명확해서 좋긴좋운데 나중에 만들다보면 소스코드 80퍼가 if err == nil 임 ㅋㅋㅋ
찾아보니까 고랭은 매크로가 없네
A(); B(); C(); 함수 3개 연달아 호출하는 코드이면 3번 각각 err != nil 해야됨?
명시적으로 에러를 리턴하는 함수가 아니면 err != nil 안해도됨
3개 모두 명시적으로 에러를 리턴하는 함수면?
if err = A(); err != nil {} 이런식으로 해야지 머
그냥 Result 모나드 반환하는게 나을거같애
나쁘지않아
애초에 try catch도 장단점 있고 err nil도 장단점 있고. 근본으로치면 err nil이 근본인데 '보기 싫다'라는 이유가 이유가 될 순 없음
난 갠적으로 try catch보다 고나 러스트같은게 더 좋음,,,
난 try catch가 더 좋음