C# 捕获Json POST异常

C# 捕获Json POST异常,c#,json,post,C#,Json,Post,我有一个页面方法: [WebMethod(false)] [ScriptMethod(ResponseFormat = ResponseFormat.Json)] public static string AMethod(string someString) {...} 当我通过Json POST调用它并传递一个无效字符串时,例如:' 我得到以下错误: {"Message":"Invalid object passed in, \u0027:\u0027 or \u0027}\u0027 ex

我有一个页面方法:

[WebMethod(false)]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public static string AMethod(string someString)
{...}
当我通过
Json POST
调用它并传递一个无效字符串时,例如:' 我得到以下错误:

{"Message":"Invalid object passed in, \u0027:\u0027 or \u0027}\u0027 expected. (22): [{\u0027someString\u0027: \u00272\u0027\u0027}]","StackTrace":" 
我希望在服务器端(C#)捕获此异常,并且不向客户端显示它,但是此错误在到达此方法之前发生


在哪里可以捕获此异常?

看起来您传入的数据位无效

[{'someString': \u00272''}]
我不确定unicode 00272是什么,但它可能不应该存在

看起来\u00272无效,因此您可能将数据作为

[{'someString':'2'}]


这是无效的,因为您需要转义(这应该通过使用JSON.stringify方法来完成)。如果您没有使用JSON.stringify,它可能不会将JSON发送到该方法-使用Fiddler进行检查,但它可能只是在发布
数据?例如=this

我已设法在web.config中捕获此异常:

<system.web>
   <customErrors mode="On" defaultRedirect="Home.aspx">
      <error statusCode="500" redirect="Home.aspx"/>
   </customErrors> 
</system.web>


它解决了我的问题,尽管它可能不是响应的最佳解决方案,但正如我所说的,我是故意传递一个无效字符串的,我是从外部应用程序而不是从我自己的javascript执行的。我唯一想知道的是我在哪里可以捕捉到这个异常。