Pegue esse programa, compile-e e o rode. Aí você vai ver o que ocorre. Depois fica bem mais fácil de explicar, não?
M
marcusbiava
thingol já tinha feito
T
thingol
E qual foi a exceção que foi lançada em runtime?
M
marcusbiava
IOException
T
thingol
Beleza; e em que linha essa exceção foi lançada? Não poste aqui o número da linha. Copie aqui o conteúdo da linha onde ocorreu essa exceção.
M
marcusbiava
file.createNewFile();
T
thingol
Pois é, vamos lá. Vamos comentar linha por linha.
A primeira coisa é que a questão é ligeiramente mal-formulada, porque supõe que não exista um subdiretório “d” dentro do diretório corrente, e se houver um subdiretório “d”, que você não tenha permissão de acesso. Esse tipo de questões não caem, porque são mal-formuladas.
Pode cair coisas parecidas, mas não tão mal-formuladas assim.
Supondo que o tal diretório não exista, então:
classMakeFile{publicstaticvoidmain(String[]args){try{Filedirectory=newFile("d");// isto não cria exceção nenhuma... O nome de arquivo ou diretório é "d".Filefile=newFile(directory,"f");// O nome de arquivo ou diretório aqui é "d/f". if(!file.exists()){// ele está vendo se "d/f" existe; vamos supor que não exista.file.createNewFile();// se o diretório "d" não existir, isso vai realmente gerar um "IOException". Mas// se o diretório "d" existir mas você não tiver acesso a ele, também vai haver um "IOException". // Realmente, você só conseguiria passar deste ponto (createNewFile) se o diretório "d" existir - isso// não foi testado no programa - e se você tiver permissão para criar um arquivo com o nome "f" dentro dele.}}catch(IOExceptione){e.printStackTrace();}}}