0

c# には try & catch ブロックがあり、回避する方法を知っていますが"Attempted to divide by zero、WebAPI2.0 では、1/0 または -1/0を入力しないようにユーザーを制限するにはどうすればよいですか?

 public IHttpActionResult div(int a, int b)
        {
            return Ok(a / b);
        }
4

1 に答える 1

0

これをまったく同じ方法で処理します。Web API はハンドル通信の 1 つの方法にすぎません。C# ロジックは同じままです。

これは、DI を使用してそれを行う方法の例です。

public class DivisionController: ApiController
{
    private readonly ICalcService _calcService;

    public DivisionController(ICalcService calcService)
    {
        _calcService = calcService;
    }

    [HttpGet]     
    public IHttpActionResult div(int a, int b)
    {
        return Ok(_calcService.Divide(a,b));
    }
}


public class CalcService: ICalcService
{
    public decimal Divide(int a, int b)
    {
        if(b == 0)
        {
            //handle what to do if it's zero division, perhaps throw exception
            return 0;
        }

        return a / b;
    }
}
于 2017-09-08T07:04:21.690 に答える