علیرغم اینکه در Program.cs یا Startup.cs کد زیر وجود دارد، اما بازهم استثناءها در Blazor Server در قالب یک نوار زرد رنگ، پایین مرورگر نشان داده میشوند؛ حال در محیط توسعه باشد و یا در محیط تولید و پابلیش نهایی محصول! if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Error");
...
در قسمت اول دیدیم که توسط Error boundary میتوان استثناءها را در Blazor مدیریت کرد؛ اما اگر بخواهیم قدری سفارشیتر عمل کرده و علاوه بر نمایش پیغام خطای مناسب به صورت جاوا اسکریپتی ، استثنای رخ داده را لاگ کنیم چطور؟ خبر خوب اینکه این مهم نیز به راحتی امکان پذیر است؛ با استفاده از مفهوم CascadingValue ها. یک کامپوننت Error.razor به شکل زیر ایجاد میکنیم: @using Microsoft.Extensions.Logging
@inject ILogger<Error> Logger
...
همانطور که میدانید Blazor Server یک فریم ورک stateful است. هنگامیکه کاربران در حال تعامل با برنامه هستند، یک ارتباط پیوسته را با سرور حفظ میکنند که به آن، به اصطلاح مدار میگویند. این مدارها، کامپوننتهای فعال را به انضمام حالتهای آنها که شامل موارد زیر است نگهداری میکند: 1- جدیدترین خروجی رندر شدهی کامپوننت. 2- مجموعه Event Handlingهای جاری که میتوانند توسط کاربر صدا زده شوند. اگر کاربری یک برنامه را در چندین تب مرورگر باز کند، ...
چنانچه قسمتهای قبلی سری آموزش برنامه نویسی تابعی Functional Programming را مطالعه نکردهاید، پیشنهاد میکنم قبلا آنها را ( + و + و + ) قبل از شروع بخوانید. در این قسمت قرار است تاثیر استثناءها (exception) را بر روی کدها بررسی کرده و راهکاری را از جنس functional برایش ارائه کنیم. Exception و خوانایی کد تکه کد زیر را در نظر بگیرید: یک Action معمولی در Asp.Net MVC که یک نام را دریافت کرده و یک ...
بعد از انتشار مطلب «Defensive Programming - بازگشت نتایج قابل پیش بینی توسط متدها »، بخصوص بخش نظرات آن و همچنین R&D در ارتباط با موضوع مورد بحث، در نهایت قصد دارم نتایج بدست آماده را به اشتراک بگذارم. پیش نیازها Exceptions for flow control: why not? Exception handling for flow control is EVIL! Replacing Throwing Exceptions with Notification in Validations نکات کار با استثناءها در دا ...
مشکل: نگارش 1.0.808.0 برنامهی DNTProfiler بر روی سایر سیستمها، هنوز به مرحلهی نمایش نرسیده، کرش میکند. علت چیست؟
این نگارش بر روی سیستم من مشکلی نداشت ولی پس از چند گزارش عدم امکان اجرای آن بر روی سایر سیستمها، یک ماشین مجازی ویندوز 8.1 را تهیه و برنامه را بر روی آن اجرا کردم. بله ... برنامه هنوز به مرحلهی نمایش نرسیده، محو میشد. در این مرحلهی ابتدایی امکان تهیهی لاگ استثنای حاصل توسط برنامه وجود نداشت و تنها این ...
با مطالعهی سورسهای محصولات اخیرا سورس باز شدهی مایکروسافت، نکات جالبی را میتوان استخراج کرد. برای نمونه اگر سورس پروژهی Orleans را بررسی کنیم، در حین بررسی اطلاعات استثناءهای رخ دادهی در برنامه، متد TraceLogger.CreateMiniDump نیز بکار رفتهاست. در این مطلب قصد داریم، این متد و نحوهی استفادهی از حاصل آنرا بررسی کنیم.
تولید MiniDump در برنامههای دات نت
خلاصهی روش تولید MiniDump در پروژهی Orleans به ...
چند سال قبل یک datapicker تقویم شمسی را برای سیلورلایت تهیه کردم. بعد از آن نسخهی WPF آن هم به پروژه اضافه شد . تا اینکه مدتی قبل مشکل عدم کار کردن آن در یک صفحهی دیالوگ جدید در ویندوز 8 گزارش شد. در حین برطرف کردن این مشکل، مدام سطر ذیل در پنجرهی output ویژوال استودیو نمایش داده میشد: A first chance exception of type 'System.ArgumentOutOfRangeException' occurred in mscorlib.dll
البته برنامه بدون مشکل کار میکرد و صفحهی نما ...
فرض کنید که از یک برنامهی native ویندوز برای تهیه تصاویر سایتها در یک برنامهی وب استفاده میکنید و صبح که به سایت سر زدهاید پیام در دسترس نبودن سایت قابل مشاهده است. مشکل از کجا است؟!
یک مثال ساده using System;
namespace AccessViolationExceptionSample
{
class Program
{
private static unsafe void AccessViolation()
{
byte b = *(byte*)(8762765876);
}
...