Gethrforexception Ioexception Em Java




Gethrforexception Ioexception Em JavaExiste alguma maneira de diferenciar programaticamente o que causou uma IOException. Por exemplo, o java lancara uma IOException, se houvesse um erro durante a escrita. Como posso dizer, se e algo como violacao de acesso, se o disco estiver fora do espaco livre, se alguem desconectou a unidade de rede ou outras coisas. Eu realmente nao posso analisar a Mensagem, pois nao parece haver nenhum formato de mensagem padronizado, o Sun (ou oracle, agora acho) nao parece ter nenhum tipo de formato padronizado. Qualquer sugestao (eu sou muito novo para o Java, nao e o meu idioma normal, mas eu preciso usa-lo para corrigir um sistema muito quebrado no trabalho.) Perguntou 29 de julho 10 as 15:29 Obtendo o controle das excecoes, a classe exata dara Voce e uma das poucas possiveis subclasses da IOException, e estas sao bastante padronizadas. Voce pode testar classes com instanceof ou (uma abordagem bruta) comparar strings retornados de getClass (). GetName (). Ha algumas solucoes alternativas para as outras coisas que voce pode fazer um File. canWrite () em um arquivo que voce esta prestes a abrir para a escrita (bem, seu programa deveria ter feito isso de qualquer maneira, se o nome andor diretorio pode variar) e se houver um Talvez voce estivesse sem espaco de arquivo, voce poderia tentar escrever um pequeno arquivo para uma boa localizacao conhecida e ver se isso explode em voce. Nao muito elegante, eu sei: Java nao e realmente conhecido como uma linguagem de programacao de sistemas. Por outro lado, muitas vezes saber uma causa detalhada para uma excecao nao ajuda muito: com ou sem o conhecimento, seu usuario simplesmente nao pode conseguir o programa para fazer o que e necessario. Respondeu 29 de julho 10 as 15:48 Um possivel adendo ao seu primeiro paragrafo - geralmente voce esta atrapalhando essas excecoes, entao uma alternativa mais agradavel e ter blocos de captura separados para FileNotFoundException. UnknownHostException. Etc. Evita testes de citacao e permite manipular casos especiais em blocos diferentes desde o inicio (sem impedir um bloqueio de capturas (IOException e) no fim). Ndash Andrzej Doyle Jul 29 10 as 16:07 Ahdrzej: Voce esta muito certo. Eu estava pensando em correcoes de banda para codificacao pre-existente e assumindo que o uberjumper nao queria reorganizar as hierarquias de captura existentes (o que for que exista). Mas se quotdoing rightquot e uma opcao, entao o seu caminho seria. Ndash Carl Smotricz 29 de julho 10 em 16: 13Constroi uma IOException com null como mensagem de erro detalhada. IOException Constroi uma IOException com a mensagem detalhada especificada. Parametros: mensagem - A mensagem detalhada (que e guardada para posterior recuperacao pelo metodo Throwable. getMessage ()) IOException Constroi uma IOException com a mensagem detalhada especificada e causa. Observe que a mensagem detalhada associada a causa nao e incorporada automaticamente nesta mensagem detalhada de excecoes. Parametros: mensagem - A mensagem detalhada (que e guardada para recuperacao posterior pelo metodo Throwable. getMessage ()) causa - A causa (que e guardada para posterior recuperacao pelo metodo Throwable. getCause ()). (Um valor nulo e permitido e indica que a causa e inexistente ou desconhecida). Desde: 1.6 IOException Constroi uma IOException com a causa especificada e uma mensagem detalhada de (causenull. Null. Cause. toString ()) (que geralmente contem o Mensagem de causa de classe e detalhe). Esse construtor e util para excecoes de IO que sao pouco mais do que wrappers para outros lancamentos. Parametros: cause - A causa (que e salva para recuperacao posterior pelo metodo Throwable. getCause ()). (E permitido um valor nulo e indica que a causa e inexistente ou desconhecida). Desde: 1.6 Enviar um erro ou recurso Para obter mais informacoes sobre a API e a documentacao do desenvolvedor, consulte a Documentacao do Java SE. Essa documentacao contem descricoes detalhadas, desenvolvidas por desenvolvedores, com visoes gerais conceituais, definicoes de termos, solucoes alternativas e exemplos de codigo de trabalho. Copyright x00a9 1993, 2016, Oracle e suas afiliadas. Todos os direitos reservados. O uso esta sujeito aos termos de licenca. Veja tambem a politica de redistribuicao de documentacao . Scripting nesta pagina rastreia o trafego da pagina web, mas nao altera o conteudo de forma alguma.