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

Boa Prática #5

Open
JuniorMoura10 opened this issue Jan 2, 2022 · 4 comments
Open

Boa Prática #5

JuniorMoura10 opened this issue Jan 2, 2022 · 4 comments

Comments

@JuniorMoura10
Copy link

Camila, nas aulas de tratamento de exceção, vc diz que "se eu lançar uma exception, outro método tem que tratar"! Pelo que deu pra eu entender, é tipo "jogar o problema para outro resolver". Como sabemos, programas grandes são divididos em partes e depois, junta tudo! A minha dúvida é: Uma empresa(ou outros desenvolvedores) podem ver com maus olhos se, ao invés de eu tratar uma exce´tion na parte do programa que me cabe, eu simplesmente "lançar" todas as exceptions que, por ventura, a parte do programa que está sob minha responsabilidade venha a ter ou esta hipótese que eu levantei é impossível? Pergunto pq eu nunca trabalhei em um projeto em equipe! Acho que ficou claro o que eu quero saber, mas se não, me diz que eu tento ser mais claro!

@cami-la
Copy link
Owner

cami-la commented Jan 2, 2022

Camila, nas aulas de tratamento de exceção, vc diz que "se eu lançar uma exception, outro método tem que tratar"! Pelo que deu pra eu entender, é tipo "jogar o problema para outro resolver". Como sabemos, programas grandes são divididos em partes e depois, junta tudo! A minha dúvida é: Uma empresa(ou outros desenvolvedores) podem ver com maus olhos se, ao invés de eu tratar uma exce´tion na parte do programa que me cabe, eu simplesmente "lançar" todas as exceptions que, por ventura, a parte do programa que está sob minha responsabilidade venha a ter ou esta hipótese que eu levantei é impossível? Pergunto pq eu nunca trabalhei em um projeto em equipe! Acho que ficou claro o que eu quero saber, mas se não, me diz que eu tento ser mais claro!

Essa parte de lançar a exception significa que você não precisa tratar ela diretamente no método que eventualmente pode acontecer.
Por exemplo, quando estamos trabalhando com métodos da referente a leitura e escrita (I/O) de arquivos, alguns métodos obrigatoriamente lançam exceptions, logo temos que fazer um try-catch ou throws para que tratemos em outro método.
Isso não quer dizer que lançamos para outro desenvolvedor resolver. Nesse caso, nós podemos criar um outro método só para tratar essa exception, assim o código não fica tão poluído e cada um fica com uma reponsabilidade.
Consegui explicar?

@JuniorMoura10
Copy link
Author

Sim! Ficou claro! Mas só a nível de curiosidade (juro que não vou fazer! rsrs) é possível que eu lance uma exception para um método que outro desenvolvedor está criando? Ou eu precisaria saber para qual método lançar?

@cami-la
Copy link
Owner

cami-la commented Jan 2, 2022

Em algum lugar do código essa exception deverá ser tratada ou lançada até chegar no método main. O contrário o código não compila.
No caso se o outro desenvolvedor usar o método que lança a exception, ele deve tratar. Isso estamos falando de Checked Exceptions.
Ou coloca o throws o throws no método main. Que não é uma boa prática.

@JuniorMoura10
Copy link
Author

Hm... Era essa mesmo a minha dúvida!! Vlw, Camila!

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

No branches or pull requests

2 participants