Jeśli zadzwonię do jednej z metod File.mkdir()
lub File.mkdirs()
w języku Java i zwróci ona false
, czy istnieje sposób sprawdzenia, dlaczego katalog nie został utworzony?Wykrywanie przyczyny niepowodzenia pliku File.mkdirs()
Odpowiedz
Niezupełnie, nie. Jeśli NIE zostanie wygenerowany SecurityException
, najbardziej prawdopodobną przyczyną jest literówka na ścieżce, co oznacza, że przypadkowo podano ścieżkę nadrzędną do nowych katalogów, która jest w jakiś sposób nieważna.
Pewnie nie masz to zawinięte w try { ... } catch (Exception e)
bloku, gdzie nie zrealizować SecurityException
jest wyrzucane, ponieważ jesteś połowu przodkiem SecurityException
, prawda?
Jeśli masz głębokie przekonanie, że wszystko wygląda dobrze i nadal się nie udaje, przypuszczam, że możesz po prostu umieścić go w pętli, aby powtórzyć, powiedzmy, trzy razy. Jeśli nadal się nie powiedzie iw zależności od aplikacji, możesz wygenerować alert na poziomie interfejsu użytkownika lub zarejestrować błąd w pliku dziennika (zakładając, że możesz do niego pisać).
Przypuszczam, że jest możliwe, że jakiś głębszy problem z I/O uniemożliwia mu działanie, ale poza zwykłym powiadamianiem użytkownika o niepowodzeniu, niewiele można (lub naprawdę trzeba) zrobić na poziomie aplikacji. Jeśli jest coś poważniejszego w błędnym I/O, to jest to bardziej prawdopodobny problem z systemem/sprzętem/systemem operacyjnym, lub czymś kompletnie nieporęcznym, nad którym nie masz kontroli, podobnie jak awaria podsystemu/usługi.
... a jeśli tak się stanie, to jest to zadanie informatyka, a nie aplikacji. Chyba że twoja aplikacja w jakiś sposób powoduje awarię.
Nie, tak nie było. Odkryłem problem (katalog nadrzędny miał niewłaściwego właściciela w jednym węźle klastra), ale wymagało ode mnie przejścia na inne piętro, porozmawiania z administratorem sieci, poproszenia kogoś o udzielenie mi sesji ssh i wreszcie wpisania '. mkdir my/wadliwy/path'. Miałem nadzieję na bardziej praktyczny sposób robienia tego ... – brandizzi
Dobrze, proszę - problem z facetem IT. :) – jefflunt
Haha, na pewno :) ale Java nie była pomocna albo ... – brandizzi
- 1. Wykrywanie przyczyny niepowodzenia otwarcia przepływu w przypadku niepowodzenia() jest prawdziwe
- 2. Wykrywanie przyczyny operacji IE Aborted Issue
- 3. AngularJS: Rozwiązać w RouteProvider - wykrywanie sukcesu/niepowodzenia?
- 4. Tworzenie, usuwanie pliku Przyczyny IOException
- 5. Wykrywanie błędu pliku HTML5 nie znaleziono pliku
- 6. Wykrywanie pliku wykonywalnego w java
- 7. Znalezienie przyczyny błędu zakleszczenia z pliku śledzenia oracle
- 8. Przyczyny wyboru 172,16/192.168?
- 9. niejawne przyczyny scala StackOverflowError
- 10. wydrukuj przyczynę niepowodzenia segmentacji
- 11. Źródło niepowodzenia AngularJS GET
- 12. Wymuszenie niepowodzenia testu jaśminowego
- 13. Niepowodzenia wiązania IPv6
- 14. Instalator HTA dla niepowodzenia MSI
- 15. Wykrywanie rozmiaru wysyłanego pliku po stronie klienta?
- 16. Wykrywanie zamknięcia połączenia klienta w pliku node.js
- 17. Znajdowanie przyczyny oczekujących/wątków wątków
- 18. Błąd niepowodzenia uwierzytelnienia - XMPPFramework - nieautoryzowany
- 19. Łukowe wykrywanie zatrzymania ARC
- 20. Wykrywanie przeglądarki a wykrywanie funkcji
- 21. Możliwe przyczyny "StreamCorruptedException: niepoprawny nagłówek strumienia"
- 22. Prawdopodobne i nieprawdopodobne przyczyny Heisenbugs w Javie?
- 23. ustalenie przyczyny odłączenia gniazda sieci stało się
- 24. Jakie mogą być przyczyny wyzwolenia zdarzenia NavigationCancel?
- 25. nieprawidłowa operacja na glEnd bez przyczyny?
- 26. Błędy gniazd 10048 na kliencie? Możliwe przyczyny?
- 27. Zaplanuj przyszłość zarówno sukcesu, jak i niepowodzenia
- 28. WebJobs nie ponawia próby niepowodzenia Kolejka nieudana
- 29. Pomoc w przypadku niepowodzenia linkera: .gnu.linkonce.t
- 30. Skuteczność niepowodzenia powiązania wiązania WPF z wyjątkiem
Zawsze zastanawiałem się, dlaczego 'mkdir()' został zaprojektowany tak, jak to zrobił (nie to, że kiedykolwiek był dla mnie problem). – NPE
To samo z 'delete()', po prostu zwraca boolean. Brak wskazania, dlaczego coś nie działa, jeśli nie jest to "SecurityException". –