Browse Source

Simplify exception reporting

v0.7.4-release
Ryan Dahl 15 years ago
parent
commit
53a841d96a
  1. 51
      src/node.cc

51
src/node.cc

@ -272,27 +272,27 @@ static void ReportException(TryCatch *try_catch) {
if (raw_stack->IsString()) stack = Handle<String>::Cast(raw_stack); if (raw_stack->IsString()) stack = Handle<String>::Cast(raw_stack);
} }
// Print (filename):(line number): (message).
String::Utf8Value filename(message->GetScriptResourceName());
const char* filename_string = ToCString(filename);
int linenum = message->GetLineNumber();
fprintf(stderr, "%s:%i\n", filename_string, linenum);
// Print line of source code.
String::Utf8Value sourceline(message->GetSourceLine());
const char* sourceline_string = ToCString(sourceline);
fprintf(stderr, "%s\n", sourceline_string);
// Print wavy underline (GetUnderline is deprecated).
int start = message->GetStartColumn();
for (int i = 0; i < start; i++) {
fprintf(stderr, " ");
}
int end = message->GetEndColumn();
for (int i = start; i < end; i++) {
fprintf(stderr, "^");
}
fprintf(stderr, "\n");
if (stack.IsEmpty()) { if (stack.IsEmpty()) {
// Print (filename):(line number): (message).
String::Utf8Value filename(message->GetScriptResourceName());
const char* filename_string = ToCString(filename);
int linenum = message->GetLineNumber();
fprintf(stderr, "%s:%i\n", filename_string, linenum);
// Print line of source code.
String::Utf8Value sourceline(message->GetSourceLine());
const char* sourceline_string = ToCString(sourceline);
fprintf(stderr, "%s\n", sourceline_string);
// Print wavy underline (GetUnderline is deprecated).
int start = message->GetStartColumn();
for (int i = 0; i < start; i++) {
fprintf(stderr, " ");
}
int end = message->GetEndColumn();
for (int i = start; i < end; i++) {
fprintf(stderr, "^");
}
fprintf(stderr, "\n");
message->PrintCurrentStackTrace(stderr); message->PrintCurrentStackTrace(stderr);
} else { } else {
String::Utf8Value trace(stack); String::Utf8Value trace(stack);
@ -653,12 +653,11 @@ v8::Handle<v8::Value> Compile(const v8::Arguments& args) {
} }
static void OnFatalError(const char* location, const char* message) { static void OnFatalError(const char* location, const char* message) {
#define FATAL_ERROR "\033[1;31mV8 FATAL ERROR.\033[m" if (location) {
if (location) fprintf(stderr, "FATAL ERROR: %s %s\n", location, message);
fprintf(stderr, FATAL_ERROR " %s %s\n", location, message); } else {
else fprintf(stderr, "FATAL ERROR: %s\n", message);
fprintf(stderr, FATAL_ERROR " %s\n", message); }
exit(1); exit(1);
} }

Loading…
Cancel
Save