Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

As "exceptions" não poderiam ser substituídas por um simples "if"

Sei que posso minha pergunta pode parecer estúpida, já que um curso inteiro foi dedicado ao tema "Exceptions" Mas como nunca programei nada inteiro, e estou entrando agora no mundo Java, não tenho como não questionar. Apesar de compreender teoricamente todo o processo de construção de Exceções que é mostrado nesse curso, até onde compreendo, ele serve para: 1 Mostrar que algo não previsto aconteceu na execução do código. 2 E tirar o código do fluxo normal. Até onde conheço programação Java, isso poderia facilmente ser feito com uma coleção de "IFs", que diriam o que o programa iria executarem em cada caso e qual a mensagem de erro seria impressa no console. Sendo assim o que jusitificaria o uso de uma ferramenta tão cheia de detalhes como o uso das Execptions??? já que até onde posso ver, o mesmo poderia ser feito com uma ferramenta muito mais simples e corriqueira...

2 respostas

A resposta para a dúvida é sim, poderíamos utilizar uma coleção de "if" seguidos para identificar se existe um problema de exceção.

Por exemplo ao declarar uma variável do tipo Integer, seu programa esta sujeito a resultar uma exceção NullPointerException, e prevendo este erro você poderia criar um IF para tratar isto.

Porém a classe Exceptions comporta uma grande quantidade de tipos de exceções que podem ser retornadas. E em uma única estrutura podem ocorrer varias destas exceções diferentes. Então se nos fossemos utilizar as estruturas condicionais como "IF" ao invés de estruturas de tratamento de exceção como try catch, teríamos o trabalho de ter que decorar todos os tipos de exceção.

solução!

Só pra deixar claro a quantidade de tipos diferentes de exceção que a classe Exception comporta.

AclNotFoundException, ActivationException, AlreadyBoundException, ApplicationException, AWTException, BackingStoreException, BadAttributeValueExpException, BadBinaryOpValueExpException, BadLocationException, BadStringOperationException, BrokenBarrierException, CertificateException, CloneNotSupportedException, DataFormatException, DatatypeConfigurationException, DestroyFailedException, ExecutionException, ExpandVetoException, FontFormatException, GeneralSecurityException, GSSException, IllegalClassFormatException, InterruptedException, IntrospectionException, InvalidApplicationException, InvalidMidiDataException, InvalidPreferencesFormatException, InvalidTargetObjectTypeException, IOException, JAXBException, JMException, KeySelectorException, LastOwnerException, LineUnavailableException, MarshalException, MidiUnavailableException, MimeTypeParseException, MimeTypeParseException, NamingException, NoninvertibleTransformException, NotBoundException, NotOwnerException, ParseException, ParserConfigurationException, PrinterException, PrintException, PrivilegedActionException, PropertyVetoException, ReflectiveOperationException, RefreshFailedException, RemarshalException, RuntimeException, SAXException, ScriptException, ServerNotActiveException, SOAPException, SQLException, TimeoutException, TooManyListenersException, TransformerException, TransformException, UnmodifiableClassException, UnsupportedAudioFileException, UnsupportedCallbackException, UnsupportedFlavorException, UnsupportedLookAndFeelException, URIReferenceException, URISyntaxException, UserException, XAException, XMLParseException, XMLSignatureException, XMLStreamException, XPathException