diff --git a/src/vs/base/browser/htmlContentRenderer.ts b/src/vs/base/browser/htmlContentRenderer.ts
index c74a313b467664453d91a894a7ae749c04b54f14..0fc79f69b092c8b1e17a4722af8e9e840ac3776c 100644
--- a/src/vs/base/browser/htmlContentRenderer.ts
+++ b/src/vs/base/browser/htmlContentRenderer.ts
@@ -12,6 +12,7 @@ import { removeMarkdownEscapes, IMarkdownString } from 'vs/base/common/htmlConte
import * as marked from 'vs/base/common/marked/marked';
import { IMouseEvent } from 'vs/base/browser/mouseEvent';
import { IDisposable } from 'vs/base/common/lifecycle';
+import { onUnexpectedError } from 'vs/base/common/errors';
export interface IContentActionHandler {
callback: (content: string, event?: IMouseEvent) => void;
@@ -152,12 +153,16 @@ export function renderMarkdown(markdown: IMarkdownString, options: RenderOptions
return;
}
}
-
- const href = target.dataset['href'];
- if (href) {
- options.actionHandler.callback(href, event);
+ try {
+ const href = target.dataset['href'];
+ if (href) {
+ options.actionHandler.callback(href, event);
+ }
+ } catch (err) {
+ onUnexpectedError(err);
+ } finally {
+ event.preventDefault();
}
- event.preventDefault();
}));
}