Консоль C # не печатает сообщение об исключении - PullRequest
0 голосов
/ 24 сентября 2018

У меня есть проект ASP.NET, и в какой-то его части я вызываю бизнес-правило для проверки формы:

[HttpPost]
    public ActionResult InsertProduct(Product Product)
    {
        try
        {
            InsertProductBLL ProductInsertion = new InsertProductBLL (Product.Value, Product.Description);
            ProductInsertion.IsValid();
            return PartialView("Success");
        }
        catch (Exception e)
        {
            Console.Write(e.Message);
            return PartialView("Fail");
        }
    }

На BLL у меня есть это:

public void IsValid()
{
    if (Value> 10) ; //I just want the else section
    else
    {
            Exception e = new Exception("Insert a bigger value");
            throw e;
    }
}

Однако консоль только печатает, что было сгенерировано исключение, но не сообщение, которое я запросил.Есть какая-то синтаксическая ошибка или что-то, что я только что испортил?

1 Ответ

0 голосов
/ 24 сентября 2018

Вы можете сделать что-то вроде этого,

Создать Result Объект, который можно использовать для передачи данных между слоями.

public class Result
{
   public HasResult { get; set; }
   public ErrorMessage { get; set;}
   public SuccessMessage { get; set;}
}

Передать как Result Объект вызывающемуслой (здесь, в вашем случае Controller) после всех проверок вашего бизнеса.

public Result IsValid(int Value)
{
    var result = new Result();

    result.HasResult = Value > 10;//set this after all your business rules 

    if(HasResult)
    {
        result.SuccessMessage = "Success"; 
    }    
    else
   {
         result.ErrorMessage = "Insert a bigger value";
   }

    return result;
}

В контроллере

[HttpPost]
public ActionResult InsertProduct(Product Product)
{
   var returnMessage = "";

    try
    {
        InsertProductBLL ProductInsertion = new InsertProductBLL (Product.Value, Product.Description);

        var result = ProductInsertion.IsValid(Product.Value);

        returnMessage  = result.HasResult 
        ? result.SuccessMessage
        : result.ErrorMessage;
    }
    catch (Exception e)
    {
        Console.Write(e.Message);
        returnMessage = "Fail";
    }

    return PartialView(returnMessage);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...