2016-05-03 1 views
0

Je dois savoir: Comment créer sa propre ligne rouge d'erreur, comme "éditer des exceptions lors de l'exécution" dans l'EDI?Comment créer son propre message d'erreur de ligne rouge au moment du design?

nous savons comment créer votre propre exception ....

double a = 4; 
double b = 2; 
if (b != 0) 
{ 
    double c = a/b; 
} 
else 
{ 
    throw new Exception("You can not divide by zero"); 
} 

ce code fonctionne très bien!
Mais .....
Et si je n'exécute pas de code et que je change la valeur de "b variable" à 0 au moment du design? "Je devrais voir un message d'erreur sur la ligne rouge, n'est-ce pas?"
Mais il n'y a pas de message d'avertissement intellisense! Comment le créer?

double a = 4; 
double b = 0; 
if (b != 0) 
{ 
    double c = a/b; 
    ~~~~~~~~~~~~~~~~~ 
} 
else 
{ 
    throw new Exception("You can not divide by zero"); 
} 
+0

Vous pouvez le gérer avec DivizionByZeroException –

+0

Je veux savoir comment fonctionne cet intellisense? l'idée principale n'est pas sur ce code! J'ai besoin de ce genre de "messages d'erreur d'exécution personnalisés intellisense" pour d'autres solutions! – IremadzeArchil19910311

+0

mais maintenant dites-moi comment cela fonctionne pour cette solution d'échantillon simple – IremadzeArchil19910311

Répondre

0

Il semble que vous ne comprenez pas ce que IntelliSense est ...

IntelliSense est la substance qui apparaît lorsque vous commencez à taper un nom de classe ou un nom de variable ou autre chose. Et cela vous montre toutes les options que vous avez. Les messages d'erreur qui apparaissent généralement ne sont pas l'affaire d'IntelliSense, ils sont sortis par le compilateur C#.

Dans votre code, il n'y a pas de message d'erreur indiquant que a ne peut pas être divisé par 0 car la valeur de b peut changer. Que faire s'il y a du code sur un autre thread qui change la valeur de b? A ce moment, b n'est plus 0! De plus, la clause if ne serait même pas atteinte!

Je sais que vous avez dit que cette question ne concerne pas ce code spécifique, alors voyons comment vous pouvez ajouter des messages d'erreur personnalisés.

Puisque les messages d'erreur sont générés par le compilateur C#, essayez d'écrire un compilateur C# vous-même!

Non, je plaisante.

Certains plugins de Visual Studio peuvent vous aider. Peut-être ReSharper? Pourquoi vous n'avez pas utilisé Try-catch Block?