بررسی مدیریت استثنا (Exception Handling) در فریم ورک AngularJS

بررسی مدیریت استثنا (Exception Handling) در فریم ورک AngularJS

در این پست از وبسایت پرووید، در رابطه با بررسی مدیریت استثنا (Exception Handling) در فریم ورک AngularJS صحبت خواهیم کرد. به ادامه ی مطلب بروید.

در قسمت از این آموزش از وب سایت پرووید که به عنوان آخرین قسمت از سری آموزش کامل و متنی و رایگان AngularJS برای شما تنظیم شده است، در رابطه با مدیریت استثناها و یا همان Exception Handling صحبت می کنیم. در رابطه با Exception Handling توصیه می کنیم که از بسته ی آموزش ویدئویی مدیریت خطاها در سی شارپ با Exception Handling استفاده کنید.

بسته ی آموزش ویدئویی ساخت وب اپلیکیشن Full-stack با Angular و ASP.NET Core و EF Core

از شما دعوت می کنیم که از بسته ی آموزش ویدئویی ساخت وب اپلیکیشن Full-stack با Angular و ASP.NET Core و EF Core دیدن کنید.

تمامی برنامه هایی که ساخته می شوند باید مکانیزم مناسبی برای Exception Handling داشته باشند. با استفاده از دستورات try و catch و finally که در جاوا اسکریپت وجود دارند، می توانید در ماژول های AngularJS اقدام به انجام Exception Handling کنید.

علاوه بر این با استفاده از $exceptionHandler را به عنوان یک Service داریم که به صورت Built-in تعریف شده است و به منظور Handle کردن Exception های کشف نشده استفاده می شود. دقت کنید که $exceptionHandler برای Handle کردن خطاهای مربوط به املای دستورات و یا اصطلاحاً Syntax Error ها مورد استفاده قرار نمیگیرند.

بسته ی آموزش ویدئویی ساخت وب اپلیکیشن Full-stack با Angular 2 و ASP.NET Core

از شما دعوت می کنیم که از بسته ی آموزش ویدئویی ساخت وب اپلیکیشن Full-stack با Angular 2 و ASP.NET Core دیدن کنید.

به طور پیش فرض $exceptionHandler جزییات مربوط به یک Exception را در کنسول مرروگرتان نمایش می دهد. البته می توانیم این رفتار پیش فرض را بر اساس نیازمان Override کنیم.

کدی که در مثال زیر مشاهده می کنید نحوه انجام Exception Handling با استفاده از $exceptionHandler می باشد.

<!DOCTYPE html>
<html ng-app="studentApp">
<head>
    <script src="~/Scripts/angular.js"></script>
</head>
<body class="container" ng-controller="studentController">
    Status: {{status}} <br />
    Data: {{data}} <br />
        <input type="button" value="Get Data" ng-click="getStudent()" />
    <script>
        var app = angular.module('studentApp', []);
        
        app.config(function ($provide) {

            $provide.decorator('$exceptionHandler', function ($delegate) {

                return function (exception, cause) {
                    $delegate(exception, cause);

                    alert('Error occurred! Please contact admin.');
                };
            });
        });

        app.controller("studentController", function ($scope) {

            var onSuccess = function (response) {
                $scope.status = response.status;
                $scope.data = response.data;

            };

            var onError = function (response) {
                $scope.status = response.status;
                $scope.data = response.data;

            }
            $scope.getStudent = function () {
                $http.get("/getdata").then(onSuccess, onError);

            };
        });

    </script>
</body>
</html>

در مثال بالا ما توانسته ایم که رفتار پیش فرض سرویس $provide را با استفاده از متد $provide.decorate() در app.config() تغییر بدهیم و یا اصطلاحاً Override کنیم. به عبارتی دیگر متد decorate() می تواند امکان تغییر دادن و یا Override کردن رفتار یک سرویس را به ما بدهد.

اتفاقی که در این متد می افتد نشان دادن Error Message های Custom و یا سفارشی و در کنار آن Log شدن Exception Message ها در کنسول مرورگر است.

نکته دیگر این که در studentController از سرویس $http استفاده کرده ایم، اما برای این که بتوانیم در این مثال یک Exception ایجاد کنیم، در Controller Function مربوطه سرویس $http را تعریف نکرده ایم، این موضوع باعث می شود که یک Exception ایجاد گردد و سپس این Exception توسط $exceptionHandler کشف شده و پس از آن یک پیغام خطا نشان داده می شود.

بسته ی آموزش ویدئویی شروع به کار با Angular 2

از شما دعوت می کنیم که از بسته ی آموزش ویدئویی شروع به کار با Angular 2 دیدن کنید.

امیدواریم که این آموزش از وبسایت پرووید نیز مورد توجه تمامی دوستان عزیز قرار گرفته باشد. از شما دعوت می‌کنیم که از دیگر آموزش های ما در رابطه با فریم ورک Angular استفاده کنید. لیست کامل این آموزش ها را می توانید در پست مربوط به آموزش کامل برنامه نویسی تحت وب با Angular مشاهده کنید.

مرتضی گیتی
بدون نظر

ارسال نظر

نظر
نام
ایمیل
وب سایت