생성자는 예외처리 try/catch 로 밖에 안됨. 리턴이 없어서.
소멸자는 예외처리 하면 안되고, 반드시 내부 에러 없이 성공해야함. 만일 에러 일어나면 바로 UB 직행임.
근데 시발 실제 상황에서는 생성자랑 소멸자 안에서 뭐가 터질지 모르니까 에러 핸들링 졸라게 중요하거나 에러 터지면 프로그램 터질 수 밖에 없는 환경에서는 저걸 곧이 곧대로 쓸 수 없어서 따로 생성 함수 소멸 함수 만들어서 two-phase construction 해버리는 거고
예외처리로 하지
에러뿜을수있는거라 그러는거?
생성자는 예외처리 try/catch 로 밖에 안됨. 리턴이 없어서. 소멸자는 예외처리 하면 안되고, 반드시 내부 에러 없이 성공해야함. 만일 에러 일어나면 바로 UB 직행임. 근데 시발 실제 상황에서는 생성자랑 소멸자 안에서 뭐가 터질지 모르니까 에러 핸들링 졸라게 중요하거나 에러 터지면 프로그램 터질 수 밖에 없는 환경에서는 저걸 곧이 곧대로 쓸 수 없어서 따로 생성 함수 소멸 함수 만들어서 two-phase construction 해버리는 거고
gc있는 언어들은 메모리할당이 실패할일이 없어서 긍가? 자바나 js할때 new에 딱히 try catch를 달아준적이없어서 궁금했음
에러 핸들링이란게 메모리 할당 뿐만 아니라, 여러 상황에서 예외가 되는 상황이 발생했을 때도 try/catch 을 강제하도록 하는게 문제라서 그럼
나는 주로 외부 통신쪽 api아니면 안쓰는편인데