<?xml version="1.0" encoding="utf-8"?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
	<channel>
		<title>Форум программистов и сисадминов Киберфорум - Блоги - Grishaco</title>
		<link>https://www.cyberforum.ru/blogs/233798/</link>
		<description>КиберФорум - форум программистов, системных администраторов, администраторов баз данных, компьютерный форум, форум по электронике и бытовой технике, обсуждение софта. Бесплатная помощь в решении задач по программированию и наукам, решение проблем с компьютером, операционными системам</description>
		<language>ru</language>
		<lastBuildDate>Tue, 22 Sep 2026 21:17:27 GMT</lastBuildDate>
		<generator>vBulletin</generator>
		<ttl>60</ttl>
		<image>
			<url>https://www.cyberforum.ru//cyberstatic.net/images/misc/rss.jpg</url>
			<title>Форум программистов и сисадминов Киберфорум - Блоги - Grishaco</title>
			<link>https://www.cyberforum.ru/blogs/233798/</link>
		</image>
		<item>
			<title>Информирования пользователя об ошибке в стиле MMS.</title>
			<link>https://www.cyberforum.ru/blogs/233798/1912.html</link>
			<pubDate>Tue, 14 Jan 2014 13:34:25 GMT</pubDate>
			<description>Представляю еще один удобный способ отображения ошибок. В чем он удобный, в том что пользователь...</description>
			<content:encoded><![CDATA[<div>Представляю еще один удобный способ отображения ошибок. В чем он удобный, в том что пользователь видит не только сообщение об ошибке, но и может посмотреть ее внутренности, такие как Stack Trace. Зачем это надо? Ну например, пользователь говорит что у него ошибка, а что за ошибка и где возникла ничего сказать не может. Логи это хорошо, но записей в логах могут быть миллионы, попробуй найди.<br />
<br />
И так, для отображения ошибок понадобится файл с названием Microsoft.ExceptionMessageBox.dll, поставляется он с SQL Server, т.е. найти его можно в папке, куда установлен SQL Server. Добавляем данный файл в Refernce проекта и используем следующий код<br />
<br />
<div class="codeblock"><table class="csharp"><thead><tr><td colspan="2" id="787952696"  class="head">C#</td></tr></thead><tbody><tr class="li1"><td><div id="787952696" style="height: 222px" class="codeframe"><table><tr class="li1"><td class="ln" style="padding: 0px 10px 0px 5px;"><pre class="de1">1
2
3
4
5
6
7
8
9
10
11
12
</pre></td><td class="de1"><pre class="de1"><span class="kw1">try</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">int</span><span class="sy0">.</span><span class="me1">Parse</span><span class="br0">&#40;</span>textBox1<span class="sy0">.</span><span class="me1">Text</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">catch</span> <span class="br0">&#40;</span>Exception exc<span class="br0">&#41;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">var</span> messageBox <span class="sy0">=</span> <span class="kw3">new</span> ExceptionMessageBox<span class="br0">&#40;</span>exc,
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ExceptionMessageBoxButtons<span class="sy0">.</span><span class="me1">OK</span>,
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ExceptionMessageBoxSymbol<span class="sy0">.</span><span class="me1">Error</span>,
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ExceptionMessageBoxDefaultButton<span class="sy0">.</span><span class="me1">Button1</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; messageBox<span class="sy0">.</span><span class="me1">Show</span><span class="br0">&#40;</span><span class="kw1">null</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></pre></td></tr></table></div></td></tr></tbody></table></div>В итоге получим окно следующего вида:<br />
<br />
<a href="https://www.cyberforum.ru/blog_attachment.php?attachmentid=1988&amp;d=1389706258" rel="Lightbox" id="attachment1988" ><img src="https://www.cyberforum.ru/blog_attachment.php?attachmentid=1988&amp;thumb=1&amp;d=1389706258" class="thumbnail" border="0" alt="Нажмите на изображение для увеличения
Название: 1.png
Просмотров: 599
Размер:	8.0 Кб
ID:	1988" style="margin: 5px" /></a><br />
<br />
Если развернуть его, то можно увидеть окно со Stack Trace<br />
<br />
<a href="https://www.cyberforum.ru/blog_attachment.php?attachmentid=1989&amp;d=1389706379" rel="Lightbox" id="attachment1989" ><img src="https://www.cyberforum.ru/blog_attachment.php?attachmentid=1989&amp;thumb=1&amp;d=1389706379" class="thumbnail" border="0" alt="Нажмите на изображение для увеличения
Название: 2.png
Просмотров: 682
Размер:	22.1 Кб
ID:	1989" style="margin: 5px" /></a><br />
<br />
Это окно дает еще одно преимущество, если нажать на кнопку скопировать, то будет скопировано полное дерево ошибки.</div>

]]></content:encoded>
			<dc:creator>Grishaco</dc:creator>
			<guid isPermaLink="true">https://www.cyberforum.ru/blogs/233798/1912.html</guid>
		</item>
	</channel>
</rss>
