Javascript高級プログラムの設計を見直して、第17章:エラー処理とデバッグ

2626 ワード

  • ブラウザレポートのエラーを理解する
  • 処理エラー
  • デバッグJavascriptコード
  • //     :
    			// try{
    			// 	//          
    			// 	window.someNonexistentFunction()
    			// }catch(error){
    			// 	//          
    			// 	console.log(error.message)
    			// }
    			// function a(){
    			// 	try{
    			// 		return 2
    			// 	}catch(err){
    			// 		return 1
    			// 	}finally{
    			// 		return 0
    			// 	}
    			// }
    			// console.log(a())			//0
    			
    			//        
    			// Error		     ,          。   ,         ,	                 		
    			// EvalError	      eval()         .          eval    .   eval    .     eval    .  : 
    			//new eval()	
    			//eval = foo
    			
    			// RangeError                ,  :      ,           ,    。  :
    			// var i1 = new Array(-20)
    			// var i2 = new Array(Number.MAX_VALUE)
    			
    			// ReferenceError          ,       ,                 ,  :
    			// var obj = x;
    			
    			// SyntaxError	       Javascript     eval   ,       ,  :
    			//eval('a ++ b')
    			
    			// TypeError	   js    ,           ,            ,       .      ,                    ,            ,  :
    			// var o = new 10;
    			// console.log("name" in true)
    			// Function.prototype.toString.call("name")
    			//                           ,             .
    			
    			// URIError		    encodeURI decodeURI, URI         URIError
    			
    			//        ,    :
    			try{
    				someFunction()
    			}catch(err){
    				if(err instanceof TypeError){
    					//      
    					console.log('1')
    				}else if(err instanceof ReferenceError){
    					//      
    					console.log('2')
    				}else{
    					//      
    					console.log('3')
    				}
    			}
    //  throw    ,         .  try-catch          ,      
    			// throw 12345
    			// throw new Error("        ")
    			// throw new URIError('12321312')
    			//              name message
    			// function n(message){
    			// 	this.name = '  '
    			// 	this.message = message
    			// }
    			// n.prototype = new Error()
    			// throw new n('    ')
    			// 
    			//             
    			// function process(val){
    			// 	if(!(val instanceof Array)){
    			// 		throw new Error("process():        " )
    			// 	}
    			// 	val.sort()
    			// 	for(var i = 0,len = val.length;i 100){
    			// 			return val[i]
    			// 		}
    			// 	}
    			// 	return -1
    			// }
    			// process(['1','2'])
    			
    			function g(url){
    				var pos = url.indexOf('?')
    				if(pos > -1){
    					return url.substring(pos + 1)
    				}
    				return ''
    			}
    			console.log(g('awsdadwdada?asd'))
    			
    			console.log(['1'] instanceof Array) 
    			
    			//JS            :
    			//     
    			//         
    			//