Nếu tôi gọi một trong các phương pháp File.mkdir()
hoặc File.mkdirs()
bằng Java và trả về false
, có cách nào để biết tại sao thư mục không được tạo?Khám phá lý do cho lỗi File.mkdirs()
Trả lời
Không thực sự, không. Nếu SecurityException
KHÔNG được ném, thì nguyên nhân có khả năng nhất là lỗi đánh máy trong đường dẫn, có nghĩa là bạn đã vô tình chỉ định đường dẫn cha mẹ cho các thư mục mới bằng cách nào đó không hợp lệ.
Tôi không cho rằng bạn đã gói nó trong một khối try { ... } catch (Exception e)
, nơi bạn không nhận ra số SecurityException
đang bị ném, bởi vì bạn đang tìm kiếm tổ tiên của SecurityException
, phải không?
Nếu bạn có niềm tin cao rằng mọi thứ có vẻ đúng, và nó vẫn không thành công, tôi cho rằng bạn có thể chỉ cần đặt nó trong một vòng lặp để thử lại, nói, ba lần. Nếu nó vẫn không thành công, và tùy thuộc vào ứng dụng của bạn, bạn có thể tăng một số loại cảnh báo ở cấp độ giao diện người dùng, hoặc đăng nhập lỗi trong tệp nhật ký (giả sử bạn có thể ghi vào nó).
Tôi cho rằng có thể một số vấn đề I/O sâu hơn ngăn không cho nó hoạt động, nhưng ngoài việc thông báo cho người dùng về sự thất bại, bạn không thể thực hiện được ở mức ứng dụng. Nếu có cái gì đó sâu hơn trong I/O sai, đó là nhiều khả năng một vấn đề với hệ thống/phần cứng/hệ điều hành, hoặc một cái gì đó hoàn toàn chiến thắng mà bạn không kiểm soát như một hệ thống con/vụ tai nạn.
... và nếu điều đó xảy ra, đó là trách nhiệm của anh chàng CNTT cần sửa, chứ không phải ứng dụng của bạn. Trừ khi tất nhiên ứng dụng của bạn bằng cách nào đó gây ra sự cố.
Không, đó không phải là trường hợp. Tôi phát hiện ra vấn đề (thư mục cha có một chủ sở hữu sai trong một nút của một cụm) nhưng nó yêu cầu tôi đi đến tầng khác, nói chuyện với quản trị viên mạng, yêu cầu ai đó cho tôi một phiên ssh và cuối cùng, gõ ' mkdir my/faulty/path'. Tôi hy vọng một cách thực tế hơn để làm điều đó ... – brandizzi
Cũng có bạn đi - vấn đề anh chàng CNTT. :) – jefflunt
Haha, chắc chắn :) nhưng Java không hữu ích ... – brandizzi
- 1. Cách khám phá lý do khởi động lại ứng dụng ASP.NET
- 2. Python unittest và khám phá
- 3. Khám phá nút không dây
- 4. Khám phá thiết bị mạng
- 5. Khám phá IP công trình
- 6. Khám phá lớp của phương thức chú giải trong Bộ xử lý chú thích cho java
- 7. Khám phá đối tượng COM trong PHP
- 8. khám phá và dịch ngược python bytecode
- 9. Khám phá "mẫu" trong một văn bản đã cho?
- 10. Khám phá cơ sở hạ tầng mạng
- 11. Plugin NPAPI trong trình khám phá Internet?
- 12. Mở trình khám phá trên tệp
- 13. Delphi 2010 RTTI: Khám phá Enumerations
- 14. Trình khám phá tệp luôn trống trong Eclipse
- 15. Khám phá Bonjour trong Javascript? Có lẽ?
- 16. Lý do cho lỗi Valgrind này là gì?
- 17. Cách khám phá thời gian tạo tệp bằng Java?
- 18. Giao thức khám phá dịch vụ web REST (json)
- 19. Khám phá mô hình điện thoại cụ thể trong JS
- 20. Sự cố với Trình khám phá cửa sổ Giết chết?
- 21. Delphi Rtti: Khám phá các thuộc tính của giao diện?
- 22. Khám phá ngôn ngữ gia đình lisp Triển khai .NET
- 23. in lý do lỗi phân đoạn
- 24. Trình khám phá Internet chặn phản hồi XML
- 25. Khám phá các diễn viên Akka trong cụm
- 26. Sử dụng trình khám phá Kho lưu trữ của TortoiseHg
- 27. Khám phá các thuộc tính nút trong neo4j grap db
- 28. Khám phá các thành viên đối tượng Ruby?
- 29. Khuôn mẫu khám phá dịch vụ Java đơn giản
- 30. Chức năng Trình khám phá thư mục nhanh hơn?
Tôi đã luôn luôn tự hỏi tại sao 'mkdir()' được thiết kế theo cách nó đã làm (không phải là nó từng là một vấn đề đối với tôi). – NPE
Tương tự với 'delete()', chỉ trả về một boolean. Không có dấu hiệu nào về lý do tại sao một cái gì đó thất bại nếu nó không phải là một 'SecurityException'. –