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(); })); }