说我有一个非常简单(尽管未完成)的课程:
public class WebSocketServer
{
private TcpListener _listener;
public WebSocketServer(IPAddress address, int port)
{
if (address == null)
{
throw new ArgumentNullException(nameof(address), "The address provided is invalid.");
}
if (port < 0 || port > 65535)
{
throw new ArgumentOutOfRangeException(nameof(port), port, "TCP ports must be between 0 and 65535.");
}
_listener = new TcpListener(address, port);
}
}
,我想实现某种日志系统。像这样简单的事情开始于:
public static class Logging
{
private static ILogger currentLogger;
public static void WriteLine(string message)
{
if (currentLogger == null) return;
currentLogger.WriteLine($"[{DateTime.Now.ToString("dd.MM.yyyy|HH:mm")}] {message}");
}
public static void SetLogger(ILogger logger)
{
currentLogger = logger;
}
}
我应该在哪里记录我的例外情况?我应该在每个throw
语句之前插入一行吗?还是应该让正在实现我的类的任何代码在处理异常时记录异常?
我知道这两种方法都可以正常工作(尽管无论处理如何,只有前者会记录日志),但是我想知道什么是最佳实践。