try.catch 捕获错误有关问题

try...catch 捕获异常问题
要catch到异常,就必须先throw抛出一个异常吗? 那如果有些问题我自己不知道怎么检测异常的话,那还是catch不到异常是吗?

这样的话,那try...catch完全可以用if来代替,对吗?

像越界等问题,我都不知道怎么检测,再catch也没有用呀

------解决方案--------------------
try
{
}
catch(...)
{

}
------解决方案--------------------
开启结构化一场SEH就能捕捉到类似越界的异常
------解决方案--------------------
根据你自己的意图,可以throw出一个异常,但这个不一定是真的出异常了,而是你自己决定在某种条件下就强制的throw出一个异常,然后catch住,做些特殊的处理,但是有些异常是在你编程时没有意识到并且也没有编译错误,也就是会产生所谓的运行时错误,像数组越界一类的,这是运行时才出现的,当然没办法提前检测,这个时候就可以在你觉得会有一些异常发生的地方给个try catch块,异常类型的可以笼统的定为exception,但他不会告诉你具体的异常信息,想得到详细的异常信息的话catch里的异常类型就要跟具体些比如overflow_error,logic_error之类的,,大概就是这样了,lz在找些异常的方面的资料看看吧,
------解决方案--------------------
补充一下啊,try catch跟if是绝对的两码事儿啊,出现异常了你不catch住那你的程序就崩了
------解决方案--------------------
可能 try catch 更强大一些吧。
------解决方案--------------------
你说的内存溢出属于硬件异常或者说CPU异常,使用WINDOWS的结构化异常处理(SEH)来捕捉处理。另一类就是我们常用的软件异常。

一般的,编码时,我们自己的函数或者API抛出异常,就可以用try catch , 也可用框架的异常处理,建议用标准的哈。