好的昨天我发布了一些我正在开发的系统问题。我现在遇到的问题是,我正在经历最糟糕的情况并且认为用户以某种方式尝试调用我的Web服务并忘记输入参数,因此Web服务接收空参数...我尝试使用{验证{1}},它仍然给我一个If
错误,所以我离开了ArgumentException
验证,而是将整个代码放在if
中,问题是这个“catch不会进入该代码块,它只是将try-catch
放在普通的Web文本上......
这是我的代码:
ArgumentException
我正在尝试做的是获取该错误消息并将其放入我的数据库......事情是它永远不会进入CATCH代码,它会直接发出错误。
希望有人能帮我找到一种方法来捕获或验证这个NULL参数问题并将其粘贴在数据库中
无论如何,谢谢你们。答案 0 :(得分:2)
如果要允许用户传递null,则必须使int
参数可以为空。更改签名以使用int?
而不是int
。
public string[] M102(int? p_enclosure, string p_transaction, int? p_operation, int? p_commodity,
string p_bl, string p_inDate, string p_blhouse, string p_anexo29, int p_tranType,
string p_vessel, string p_trip, int? p_entry, string p_padlock, string p_brands,
string p_appoint, string p_plates, string p_qmark)
字符串(和其他引用类型)很好,但任何值类型参数都不能接收空参数,这很可能发生在异常发生的地方。
然后,当处理方法体中的可空参数时,您必须使用HasValue
属性测试参数是否具有值并获得实际值,您将必须使用{{1属性。
在方法体内,您必须在每个参数上手动测试Value
,如果任何为空的(不应该是整数),则返回错误结果并将其记录在系统中
null