C#中throw和try catch的区别是什么?throw是不是用的比较少?什么时候需要throw

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则是只管终止错误,而不处理