-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
코드상에서 Error 처리 방법 및 기타 컨벤션 #32
Comments
try catch 를 사용하는게 더 c++ 에 맞을 것 같은데, 그리고 bool 함수를 조건문에서 사용하는 경우에 따른 표기도 통일하면 좋을 것 같아요. if (ft::isprint(c)) false 조건의 경우 if (ft::isprint(c) == false) |
저는 보통 int형으로 반환하여
if (ft::isprint(c) == EXIT_SUCCESS)
if (ft::isprint(c) == EXIT_FAILURE) 생각해보니 c에는 bool이없어서 이렇게 코딩한것같아요. 저는 다 좋은것 같아요! 우선 if문 조건 부분은 정해주시면 select 코딩할때 맞춰서 코딩하겠습니다! |
네 저도 c에서는 false 조건의 경우는 가독성을 위해 아래처럼 false를 직접 표기하고 if (ft::isprint(c) == false) true 조건의 경우에는 두 방법 중 하나를 선택하면 좋을 것 같아요. 전 둘 중엔 1번을 선호하긴 하는데 호리님은 어떠세요? 1. if (ft::isprint(c))
2. if (ft::isprint(c) == true) |
저도 1번이 더 괜찮은것 같아요! 리턴형이 bool이니까 가독성고려해도 true 안써도 괜찮을것 같습니다! |
후보군 4개를 만들어 보았습니다. 선택해주세요..!
bool
Server::setServerSocket()
{
if ((this->m_server_socket = socket(AF_INET, SOCK_STREAM, 0)) == -1)
{
perror("socket error");
return (false);
}
if (bind(
this->m_server_socket,
(struct sockaddr *)&this->m_server_addr,
sizeof(this->m_server_addr)
) == -1)
{
perror("bind error");
return (false);
}
if (listen(this->m_server_socket, 5) == -1)
{
perror("listen error");
return (false);
}
return (true);
}
# define SUCCESS_RETURN 0
# define SOCKET_ERROR 1
# define BIND_ERROR 2
# define LISTEN_ERROR 3
int
Server::setServerSocket()
{
if ((this->m_server_socket = socket(AF_INET, SOCK_STREAM, 0)) == -1)
return (SOCKET_ERROR);
if (bind(
this->m_server_socket,
(struct sockaddr *)&this->m_server_addr,
sizeof(this->m_server_addr)
) == -1)
return (BIND_ERROR);
if (listen(this->m_server_socket, 5) == -1)
return (LISTEN_ERROR);
return (SUCCESS_RETURN);
}
bool
Server::setServerSocket()
{
if (
((this->m_server_socket = socket(AF_INET, SOCK_STREAM, 0)) == -1) &&
(bind(
this->m_server_socket,
(struct sockaddr *)&this->m_server_addr,
sizeof(this->m_server_addr)
) == -1) &&
(listen(this->m_server_socket, 5) == -1)
)
return (true);
return (false);
}
void
Server::setServerSocket()
{
if ((this->m_server_socket = socket(AF_INET, SOCK_STREAM, 0)) == -1)
throw "socket error";
if (bind(
this->m_server_socket,
(struct sockaddr *)&this->m_server_addr,
sizeof(this->m_server_addr)
) == -1)
throw "bind error"
if (listen(this->m_server_socket, 5) == -1)
throw "listen error";
} |
jwonerror handling
method안 member 변수무조건 this 사용
yechoierror handling
method안 member 변수무조건 this 사용
holeeerror handling
method안 member 변수무조건 this 사용
|
주된 처리를 1,2 번으로 하되, 4번 방식도 때때로 필요할 것 같아요. 클래스 상에서 자주 발생하거나 중요한 오류는 exception 클래스를 따로 만들어서, try-catch 로 처리하면 좋을 것 같습니다. |
그러면 1번으로 해요! 2번같은 경우에는 따로 헤더를 만들어서 관리해줘야하는 부분이기때문에 1번하고 혼용하는것보다는 단독적으로 쓰는게 좋다고 생각합니다! 메세지 함수는 나중에 유틸에서 정해서 만들고 메세지와 함께 리턴하는 방식으로 코딩하겠습니다! 감사합니당 (+) true 하고 false 반환중에 어떤것을 에러시 반환으로 할까요? |
오오 저희 뭔가 수정해야될 점이 있나요? |
아뇨 코드 작성하는데 계속 참고하려고 다시 오픈했어요..ㅎㅎ |
에러 처리 방법을 일관되게 하면 좋을것 같아서 이슈 달았습니다.
위 코드는 함수 반환값으로 한번에 message 함수를 통해 처리하는 방식입니다.
평소에는 어떻게 에러를 처리하시나요? (Class 나 구조체 안에 맴버변수로 관리.. try catch exception.. 등등)
또다른 하나는 class 의 메소드에서
this->m_server_socket
다음과 같이 불러올 수 있지만
이렇게도 불러올 수 있는데
m_server_socket
이 방식을 사용해도 되는지 아니면 모든 맴버 변수에 대해서 무조건 this를 붙일 것인지 정해주세요! 어떻게 하면 좋을까요?The text was updated successfully, but these errors were encountered: