比方說,我想創建一個DLL庫,以簡單易用的方式提供通用文件系統服務。這個庫可以用於第三方.NET應用程序。 比方說,這個庫只提供了這個接口給公衆:如何在C#中開發一個庫時做適當的異常處理?
public interface IFileSystemService
{
void CreateDirectory(string path);
void DeleteDirectory(string path);
bool DirectoryExists(string path);
IEnumerable<string> EnumerateDirectories(string path);
void DeleteFile(string path);
bool FileExists(string path);
void CopyFile(string sourcePath, string destinationPath, bool overwriteExisting);
// ... and other methods
}
什麼是異常處理的最佳實踐,當談到從System.IO命名空間(如FileInfo實現使用標準的.NET類這個接口, DirectoryInfo,Directory,File等...)? 如何讓這個庫強大且易於客戶端代碼使用?我該如何做到這一點,以便錯誤處理的客戶端代碼乾淨且不會過於複雜?
https://github.com/aspnet/FileSystem – SLaks 2014-10-01 14:06:44
什麼是清晰而不復雜的錯誤處理? – Reniuz 2014-10-01 14:09:38
@reniuz:我預計這個評論......不確定,我不能給出確切的定義,我希望在社區上有一些共識。例如。對我來說,有一件事情是用少量的try/catch塊編寫客戶端代碼...也許嘗試使用不超過一個或兩個catch塊的塊...太多try/catchs混淆代碼。例如。當我做CopyFile()我想只有一種類型的異常拋出更多的細節在InnerException也許。不知道這是否是正確的方法,但這對我目前意味着什麼。 – matori82 2014-10-01 14:19:52