-2
我正在分析静态分析器的结果。在c#中如果涉及方法调用,`as`运算符会抛出异常
在c#语言中可以as
运算符抛出异常,如果涉及方法调用?即as
是否阻止了所有异常?
string string_name = some_object.Deserialize(openstream) as string;
我正在分析静态分析器的结果。在c#中如果涉及方法调用,`as`运算符会抛出异常
在c#语言中可以as
运算符抛出异常,如果涉及方法调用?即as
是否阻止了所有异常?
string string_name = some_object.Deserialize(openstream) as string;
这不是as
运算符,而是抛出异常的方法。
尝试:
var valueFromMethod = some_object.Deserialize(openstream);
string string_name = valueFromMethod as string;
您将获得第一行除外。如果投射失败,则返回null
。它不会抛出异常。
不,最坏的情况下as
将返回null
如果无法进行转换。
一两件事情很可能
Deserialize
抛出异常string_name
价值,并得到一个NullReferenceException
downvoters请在注释解释 – denfromufa
你为什么这么问?此代码是否会抛出异常?你为什么认为方法调用是相关的? – CodeCaster
我在分析静态分析器的结果 – denfromufa