私はこれを持っています:
// static enum of supported HttpRequest to match requestToString
static const enum HttpRequest {
GET,
POST,
PUT,
DELETE,
OPTIONS,
HEAD,
TRACE
};
// typedef for the HttpRequests Map
typedef boost::unordered_map<enum HttpRequest, const char*> HttpRequests;
// define the HttpRequest Map to get static list of supported requests
static const HttpRequests requestToString = map_list_of
(GET, "GET")
(POST, "POST")
(PUT, "PUT")
(DELETE, "DELETE")
(OPTIONS,"OPTIONS")
(HEAD, "HEAD")
(TRACE, "TRACE");
今電話したら
requestToString.at(GET);
大丈夫ですが、存在しないキーを呼び出すと
requestToString.at(THIS_IS_NO_KNOWN_KEY);
ランタイム例外が発生し、プロセス全体が中止されます..
これを防ぐ最善の方法は何ですか?プラグマがありますか、それとも「Javaのように」try/catchブロックで囲む必要がありますか?
親切にアレックス