Skip to content
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

roll 4n3 와 같이 유효하지 않은 input 에 대해 예외발생 #43

Open
jwChung opened this issue Jul 22, 2016 · 8 comments
Open

Comments

@jwChung
Copy link
Member

jwChung commented Jul 22, 2016

중복을 포함하지 않는 dicebot의 경우 roll횟수가 선택대안수 보다 클 경우(예, 4n3) 예외가 발생해야합니다.

@jwChung
Copy link
Member Author

jwChung commented Jul 22, 2016

@masunghoon 제가 이해한 것이 맞는지요? 바꿔 말해, 이 이슈가 처리되어야 하는 것인지 컨폼 부탁드립니다.

@curry-ing
Copy link
Contributor

curry-ing commented Jul 22, 2016

이 문제를 역시 생각해 봤었는데,
굳이 예외처리를 해야하나? 주사위 다 쓰면 결과 내주지 뭐~ 라는 생각에
그냥 주사위 다 소진(?)되면 소진되는대로 결과를 던져주는 쪽으로 구현했었습니다.

그래도 충분히 다시 생각해 볼 수 있는 문제라고 생각되구요
개선하는 방법은

  1. 적은 대로 그냥 출력 (현행)
  2. 예외 발생
  3. 출력 & noti (ex> roll 4n3 : 2, 1, 3, dice exhausted(?))

정도가 있을 듯 한데, 다른 분들의 의견을 들어보고 싶습니다.

@jwChung
Copy link
Member Author

jwChung commented Jul 22, 2016

@masunghoon 아 그런 생각이셨군요. 우선 Question으로 바꿔놓겠습니다.

@jwChung
Copy link
Member Author

jwChung commented Jul 22, 2016

저는 이 이슈가 문자열을 Int로 바꾸는 문제와 크게 다르지 않다고 생각합니다. "0.1".toInt 와 같은 경우 예외를 발생시키 듯, 잘못된 인풋의 경우 잘못되었다고 하는게 명시적이고 좋은 방법이라 생각합니다. 그래서 저는 **두번째 대안(예외발생)**에 한표 던집니다.

@curry-ing
Copy link
Contributor

네 이게 #15 #25 처럼 확장 될 예정이니 input validation이 강화 될 필요는 있을 것으로 보입니다.
하지만 어플리케이션의 성격 상 이 경우는 충분히 용인 될 수 있는 상황으로 보여지고,
굳이 저거 실수했다고 다시 타이핑하기 귀찮을 유저를 생각해서 3번은 어떨까 합니다.

@jwChung
Copy link
Member Author

jwChung commented Jul 22, 2016

  1. roll 0d100
  2. roll -12d100
  3. roll 2.3d10.0
  4. roll 1.42n1.0

도 이 문제와 같이 생각해봐야겠네요

@myeesan
Copy link
Contributor

myeesan commented Jul 24, 2016

dice exhausted

이 표현 재밌네요.

roll 0d100
roll -12d100
roll 2.3d10.0
roll 1.42n1.0

그럼 마찬가지로 위 입력들에 대해서 적절한 오류 메시지를 보여 주어야 할 것 같아요.

우선은 2번을 택해서 모든 예외상황들을 처리하고, 메시지를 세분화 하는 방식으로 진행하면 어떨까 합니다.

@naxxster
Copy link

현재 의미적인 문제가 아닌 regex 로 필터링되는 구문적인 부분의 경우는 어떻게 처리가 되나요?
process 에서 None 이 리턴되는 경우가 되겠네요.

두 오류 검사 지점이 다른 상황에서 의미적인 오류는 어떻게 처리할 지에 대한 부분인 것 같은데.
처음엔 그냥 예외 발생이 좋지 않을까 생각됩니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants