C++抛出错误有关问题,麻烦各位帮忙看一下了

C++抛出异常问题,麻烦各位帮忙看一下了!不好意思了,仍然是c++ primer上的问题.看到这样一个例子(P457):enu

C++抛出异常问题,麻烦各位帮忙看一下了!
不好意思了,仍然是c++ primer上的问题.看到这样一个例子(P457):
enum EHstate{noErr,zeroOp,negativeOp,severError};
enum EHstate state = noErr;

int mathFunc(int i)
{
  if(i == 0)
  {
  state = zeroOp;
  throw state;
  }
}
下面有这样几句话:
在这个例子中,对象state没有被用作异常对象,而是由throw表达式创建了一个类型为EHstate的异常对象,并且用全局对象state的值初始化该对象.
请问一下,为什么不直接抛出全局对象state,而要再创建一个临时对象呢?
麻烦各位帮忙讲解一下了!

[解决办法]
搞错了,C++规范要求被做为异常抛出的对象必须被复制,所以无论你是用全局还是局部的对象,结果都是一个拷贝
[解决办法]
不明白你的第二个问题意思
在C++primer里说了,Catch()里用引用