C#中throw和try catch的区别是什么?throw是不是用的比较少?什么时候需要throw
比如说,用整数表示人的年纪,那么负数就是非法的。
编写如下代码:
int _age;
public int Age
{
get { return _age; }
set
{
if (value < 0)
throw new InvalidParameterException("age can not below zero");
_age = value;
}
}
try-catch 会将在try中出现错误时,catch到这个异常,并给予相应的代码处理。也就是说exception会在当前代码中执行。
而throw 会将信息**上抛**到上级的catch中进行处理。至于用的时候主要是你在当前代码中不需要处理这个异常,或是要将异常集中处理时可以使用。
Catch是程序执行时判断为假所走第一步,而throw是当程序执行遇到异常往上抛出错误的一种机制。
try-catch是用来捕获异常的,问题是程序在执行时“函数一层套一层“,有可能就是try-catch套try-catch。
如果异常不想在下层try-catch里抛出,那就throw出来,让上一层的try-catch破获。
如果想下层直接吞掉异常,那就不要throw,直接处理异常,这样上一层就不会再次重复捕获这个异常。
try-catch可以在正确和错误的情况下分别进行某种事件,而throw则是只管终止错误,而不处理