summaryrefslogtreecommitdiff
path: root/scripting
diff options
context:
space:
mode:
authorAaron <aaron@10gen.com>2010-09-07 16:46:08 -0700
committerAaron <aaron@10gen.com>2010-09-07 16:46:08 -0700
commit8d11f130ede389f39fdeeb75b9cc700ed300de4c (patch)
treefd255e7f6a2a4fa5178151a1c3c046dc88956b7d /scripting
parent4aa83fac62ff5162d76beba9d62f5da6d1513d13 (diff)
downloadmongo-8d11f130ede389f39fdeeb75b9cc700ed300de4c.tar.gz
SERVER-1749 catch exception in get next callback
Diffstat (limited to 'scripting')
-rw-r--r--scripting/v8_db.cpp20
1 files changed, 12 insertions, 8 deletions
diff --git a/scripting/v8_db.cpp b/scripting/v8_db.cpp
index e1788755042..2ccca1c7c0c 100644
--- a/scripting/v8_db.cpp
+++ b/scripting/v8_db.cpp
@@ -367,15 +367,19 @@ namespace mongo {
}
v8::Handle<v8::Value> internalCursorNext(const v8::Arguments& args){
- mongo::DBClientCursor * cursor = getCursor( args );
- if ( ! cursor )
- return v8::Undefined();
- BSONObj o;
- {
- v8::Unlocker u;
- o = cursor->next();
+ try {
+ mongo::DBClientCursor * cursor = getCursor( args );
+ if ( ! cursor )
+ return v8::Undefined();
+ BSONObj o;
+ {
+ v8::Unlocker u;
+ o = cursor->next();
+ }
+ return mongoToV8( o );
+ } catch ( ... ) {
+ return v8::ThrowException( v8::String::New( "unexpected exception in internalCursorNext()" ) );
}
- return mongoToV8( o );
}
v8::Handle<v8::Value> internalCursorHasNext(const v8::Arguments& args){