Դաս 34: Սխալներ և Բացառություններ

0

Երեք տեսակի սխալներ կան ծրագրավորման մեջ:  (a) Շարահյուսական Սխալներ, (b) Աշխատաժամանակի Սխալներ, և (c) Տրամաբանական Սխալներ:

Շարահյուսական Սխալներ

Շարահյուսական սխալները նաև անվանվում են արգելափակման սխալներ, և տեղի են ունենում կուտակված ժամանակում ավանդական ծրագրավորման լեզվում:

Օրինակ, հետևյալ տողը շարահյուսական սխալներ է թույլ տալիս, քանի որ նրանից բացակայում է միջանկյալ բառը:

<script type=”text/javascript”>

<!–

window.print(;

//–>

</script>

Երբ շարահյուսական սխալներ են տեղի ունենաում  JavaScript-ում, միայն  շարահյուսական սխալներում կոդն է վնասվում իսկ կոդի մնացած մասը իրականացվում է:

Աշխատաժամանակի Սխալներ

Աշխատաժամանակի սխալները անվանվում են նաև բացառություններ, տեղի են ունենում կատարման ժամանակ:

Օրինակ, հետևյալ տողը աշխատաժամանակի սխալներ է թույլ տալիս, քանի որ այստեղ շարահյուսությունը ճիշտ է, բայց աշխատաժամանակի ընթացում այն փորձում է մեթոդ  կոչ անել, որը գոյություն չունի:

<script type=”text/javascript”>

<!–

window.printme();

//–>

</script>

Տրամաբանական Սխալներ

Տրամաբանական սխալները ամենադժվարն են: Այս սխալները շարահյուսական կամ աշխատաժամային սխալների արդյունք չեն: Փոխարենը, նրանք տեղի են ունենում, երբ տրամաբանությունում սխալ եք անում:

Դուք չեք կարող բռնել այս սխալները, քանի որ նրանք կախված են ձեր բիզնեսի պահանջներից:

Try…catch…finally

JavaScript-ի վերջին տարբերակները բացառություն են ավելացրել մենաբանող հնարավորություններով: JavaScript-ը  կատարում է  try…catch…finally կոնստրուկտը, ինչպես նաև  throw օպերատորը բացառությունները գործածելու համար:

Կարող եք բռնել ծրագրավորող-գեներացված և աշխատաժամային բացառությունները, բայց չեք կարող բռնել JavaScript-ի շարահյուսական սխալները:

Ահա try…catch…finally բլոկ շարահյուսությունը.

<script type=”text/javascript”>

<!–

try {

//  Code to run

[break;]

} catch ( e ) {

//  Code to run if an exception occurs

[break;]

}[ finally {

//  Code that is always executed regardless of

//  an exception occurring

}]

//–>

</script>

Օրինակ՝

<html>

<head>

<script type=”text/javascript”>

<!–

function myFunc(){

var a = 100;

document.write (“Value of variable a is : ” + a );

}

//–>

</script>

</head>

<body>

<p>Click the following to see the result:</p>

<form>

<input type=”button” value=”Click Me” onclick=”myFunc();” />

</form>

<p>Error will happen and depending on your browser it will give different result.</p>

</body>

</html>

Արդյունք

Click the following to see the result:

Click Me

Error will happen and depending on your browser it will give different result.

Փորձեք այս բացառությունը օգտագործելով try…catch-ը և ցուցադրել օգտատերին ընկերական նամակ:

<html>

<head>

<script type=”text/javascript”>

<!–

function myFunc(){

var a = 100;

try {

document.write (“Value of variable a is : ” + a );

}

catch ( e ) {

document.write (“Error: ” + e.description );

}

}

//–>

</script>

</head>

<body>

<p>Click the following to see the result:</p>

<form>

<input type=”button” value=”Click Me” onclick=”myFunc();” />

</form>

</body>

</html>

Արդյունք

Click the following to see the result:

Click me

Կարող եք օգտագործել finally բլոկը, որը միշտ կկատարի անվերապահորեն, փորձել/բռնելուց հետո:

Օրինակ՝

<html>

<head>

<script type=”text/javascript”>

<!–

function myFunc(){

var a = 100;

try {

document.write (“Value of variable a is : ” + a );

}

catch ( e ) {

document.write (“Error: ” + e.description );

}finally {

document.write (“Finally block will always execute!” );

}

}

//–>

</script>

</head>

<body>

<p>Click the following to see the result:</p>

<form>

<input type=”button” value=”Click Me” onclick=”myFunc();” />

</form>

<p>Try running after fixing the problem with method name.</p>

</body>

</html>

Արդյունք

Click the following to see the result:

Click me

Try running after fixing the problem with method name.

The throw Statement

Կարող եք օգտագործել throw պնդումը, բարձրացնելու ձեր ներկառուցված բացառությունները կամ ձեր անհատական բացառությունները:

Օրինակ՝

<html>

<head>

<script type=”text/javascript”>

<!–

function myFunc(){

var a = 100;

var b = 0;

try{

if ( b == 0 ){

throw( “Divide by zero error.” );

}else{

var c = a / b;

}

}catch ( e ) {

document.write (“Error: ” + e );

}

}

//–>

</script>

</head>

<body>

<p>Click the following to see the result:</p>

<form>

<input type=”button” value=”Click Me” onclick=”myFunc();” />

</form>

</body>

</html>

Արդյունք
Click the following to see the result:

Click me

onerror( ) Method

onerror միջոցառում կարգավորողը JavaScript-ում սխալները հեշտացնելու առաջին հատկությունն էր: շ

Օրինակ՝

<html>

<head>

<script type=”text/javascript”>

<!–

window.onerror = function () {

document.write (“An error occurred.”);

}

//–>

</script>

</head>

<body>

<p>Click the following to see the result:</p>

<form>

<input type=”button” value=”Click Me” onclick=”myFunc();” />

</form>

</body>

</html>

Արդյունք

Click the following to see the result:

Click me

onerror միջոցառում կարգավորողը  տրամադրում է 3 ինֆֆորմացիայի տեսակ, սխալի բնույթը հասկանալու համար.

  • Error message: Նույն նամակը, որը բրաուզերը կցուցադրի, տրված սխալի համար:
  • URL: Ֆայլը, որում սխալը տեղի է ունեցել:
  • Line number: Տողի թիվը, տրված URL-ում, որը պատճառ է հանդիսացել սխալի համար:

Օրինակ՝

<html>

<head>

<script type=”text/javascript”>

<!–

window.onerror = function (msg, url, line) { document.write (“Message : ” + msg );

document.write (“url : ” + url ); document.write (“Line number : ” + line );

}

//–>

</script>

</head>

<body>

<p>Click the following to see the result:</p>

<form>

<input type=”button” value=”Click Me” onclick=”myFunc();” />

</form>

</body>

</html>

Արդյունք

Click the following to see the result:

Click me

Կարող եք օգտագործել  onerror մեթոդը, ինչպես ցուցադրված է ներքևում:

<img src=”myimage.gif”

onerror = “alert(‘An error occurred loading the image.’)” />

Կարող եք օգտագործել  onerror շատ  HTML tag-երի հետ, սխալների ժամանակ ցուցադրելու համապատասխան նամականեր:

Հարգելի ընթերցող, խնդրում ենք չմոռանալ like տալ մեր ֆեյսբուքյան էջին, քանի որ նորությունների մեծ մասը առաջինը տեղադրվում է հենց այնտեղ։ Ինչպես նաև հետևեք մեզ այլ սոցիալական ցանցերում և, իհարկե, գրանցվեք մեր բլոգում։

Share.