Bonjour,

Ce n'est pas un problème de syntaxe ponctuel que je soumets mais + un souci de construction de mon module PHP qui est ponctué de TRY THROW CATCH... et à la limite, cela rend la lisibilité du code difficile...

Voici un extrait:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
	 	
try
 {	// Verifier que le requête n'est pas vide ! 
   	// ----------------------------------------
       if( is_string($this->query) ) 
	   try
	  {	if( $this->result = mysql_query($this->query,$this->idConn[$this->id]) ) 
		{	// On teste le type de requête 'select','show','explain','describe')
							preg_match( '`SELECT|SHOW|DESCRIBE|EXPLAIN`i' , $this->query , $match );
							try
		 					{	switch( $match[0] )
								{	case 'SELECT' 	:	$i = 0;
				 										// On construit notre $resArray
				 										while( $row = mysql_fetch_assoc($this->result) ) 
														{	$resArray[$i++] = $row;
				 										}	//end while
									
				 										// On libere la ressource
														$this->mysqlFreeResult($this->result) ;
														return($resArray) ;
														break;
													
									case 'SHOW'		:	
									case 'EXPLAIN'	:
									case 'DESCRIBE'	:	// on informe juste que c'est bien passer
			      										return true;
									default			:	// On lance une exception  
		      											throw new Exception("SQL didn't find correct keyord to match MYsql, please check it !") ;
			  					}//end switch	
			 				}  catch(Exception $E) 
								{	$this->display_exception($E) ;
								}
						}				
					else 
						{	
		 				} 
			 	}  catchh(Exception $E) 
		    		{	$this->display_exception($E) ;
					}
			else 
				throw new Exception("SQL request string is empty and/or not valid, please check it !") ;
		}   catch(Exception $E) 
		    {	$this->display_exception($E) ;
			}
Code qui contient 3 X le trio (try, throw , catch).

Alors je me pose la question suivante, une construction du style suivant est'elle possible et accepté par PHP autrement si vous en avez une autre...

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
try
{	// Verifier que le requête n'est pas vide ! 
   	// ----------------------------------------
	if( is_string($this->query) ) 
		{	if( $this->result = mysql_query($this->query,$this->idConn[$this->id]) ) 
				{	// On teste le type de requête ('select','show','explain','describe')
					preg_match( '`SELECT|SHOW|DESCRIBE|EXPLAIN`i' , $this->query , $match );
		 			{	switch( $match[0] )
						{	case 'SELECT' 	:	$i = 0;
				 								// On construit notre $resArray
				 								while( $row = mysql_fetch_assoc($this->result) ) 
												{	$resArray[$i++] = $row;
				 								}	//end while
									
				 								// On libere la ressource
												$this->mysqlFreeResult($this->result) ;
												return($resArray) ;
												break;
													
							case 'SHOW'		:	
							case 'EXPLAIN'	:
							case 'DESCRIBE'	:	// on informe juste que c'est bien passer
			      								return true;
							default			:	// On lance une exception  
		      									throw new Exception("SQL didn't find correct keyord to match MYsql, please check it !") ;
			  			}//end switch	
				}				
			else 
				{	
		 		} 
		}  
	else 
		throw new Exception("SQL request string is empty and/or not valid, please check it !") ;
}   catch(Exception $E) 
	{	$this->display_exception($E) ;
	}
Construction dans laquelle je mets tout mon code entre une seul TRY - CATCH avec X THROW....

Qu'est ce cela donne au point de vue performance ?

Merci de votre feed-back