css – 如何以编程方式输出错误?

前端之家收集整理的这篇文章主要介绍了css – 如何以编程方式输出错误?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我写了一个ASP.NET MVC操作方法,接收一个.less文件名,通过Less.Parse(< filename>)处理它,并输出处理的css文件.

只要代码无效,这样工作正常,但如果有错误,则dotLess只返回一个空字符串.所以如果处理文件错误,我的action方法返回一个空的css文件.

如何输出一个错误消息,更接近语法错误的描述呢?

解决方法

dotLess解析器捕获异常并将其输出到记录器.来自dotLess执行此操作的源代码段为LessEngine.TransformToCss:
public string TransformToCss(string source,string fileName)
{
    try
    {
        Ruleset ruleset = this.Parser.Parse(source,fileName);
        Env env = new Env();
        env.Compress = this.Compress;
        Env env2 = env;
        return ruleset.ToCSS(env2);
    }
    catch (ParserException exception)
    {
        this.Logger.Error(exception.Message);
    }
    return "";
}

Less.Parse有一个重载,它接收一个DotlessConfiguration对象,它提供了可以使用的几个属性

public class DotlessConfiguration
{
    // Properties
    public bool CacheEnabled { get; set; }
    public Type LessSource { get; set; }
    public Type Logger { get; set; }
    public LogLevel LogLevel { get; set; }
    public bool MinifyOutput { get; set; }
    public int Optimization { get; set; }
    public bool Web { get; set; }
}

您将注意到Logger属性的类型为Type.您提供的任何类型都必须实现dotless.Core.Loggers.ILogger:

public interface ILogger
{
    // Methods
    void Debug(string message);
    void Error(string message);
    void Info(string message);
    void Log(LogLevel level,string message);
    void Warn(string message);
}

正如我们在第一个代码片段中看到的那样,在解析时遇到错误时,记录器上的Error方法将被调用.

现在,所有这一切的一个粘点是实现ILogger类型的实例是如何被实例化的.在内部,dotLess使用被放入DLL的IoC容器.按照方法调用,它似乎最终会调用Activator.CreateInstance来实例化你的ILogger.

我希望这至少有点帮助.

猜你在找的CSS相关文章