Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Please login or create an account
Change language to: English - Português - 日本語

Please note that the recommended version of Scilab is 6.0.0. This page might be outdated.
However, this page did not exist in the previous stable version.

Aide Scilab >> Scilab > errcatch

errcatch

interception d'erreur

Séquence d'appel

errcatch(n [,'action'] [,'option'])
errcatch()

Paramètres

n

entier

action, option

chaînes de caractères

Description

errcatch définit une action à effectuer quand une erreur de numéro n est rencontrée. n a la signification suivante:

si n>0, n est le numéro de l'erreur à intercepter

si n<0, toutes les erreurs sont à intercepter

action est une des chaînes de caractères suivantes :

"pause"

l'interception de l'erreur conduit à une pause. Cette option est utile en phase de mise au point. On peut utiliser whereami() pour obtenir des informations sur le contexte courant.

"continue"

l'exécution de la fonction ou du script continue, l'instruction courante est tout simplement ignorée. Il est possible de vérifier si une erreur s'est produite avec la fonction iserror. Ne pas oublier d'effacer l'erreur avec la fonction errclear le plus tôt possible. Cette option est utile pour remédier aux erreurs. Dans la plupart des cas, l'usage de errcatch(n,"continue",..) peut être remplacé par l'usage de la fonction execstr.

"kill"

mode par défaut, tous les niveaux intermédiaires sont abandonnés, et Scilab revient à l'invite de commande de niveau 0.

"stop"

interrompt la session Scilab courante (très utile quand Scilab est exécuté à partir d'un programme externe).

option est la chaîne de caractères 'nomessage' pour supprimer les messages d'erreurs.

Pour revenir au mode par défaut, taper errcatch(-1,"kill") ou bien errcatch(-1).

Lorsque errcatch est appelée à l'intérieur d'une fonction, le mode d'interception d'erreur est automatiquement réinitialisé au mode par défaut lorsque l'on sort de la fonction.

errcatch() est un equivalent obsolete de errcatch(-1).

REMARQUES

errcatch est obsolete. Il est préférable d'utiliser try ou execstr(...,'errcatch') à la place de errcatch lorsque c'est possible.

Voir aussi

  • errclear — "effacement" d'une erreur
  • iserror — test d'occurrence d'une erreur
  • whereami — donne l'arborescence d'appel de l'instruction courante
  • execstr — exécution d'instructions Scilab contenues dans des chaînes de caractères

Comments

Author : Samuel Gougeon posted the 15/03/2013 22:38
>errcatch est obsolete. Il est préférable d'utiliser try ou
>execstr(...,'errcatch') à la place de errcatch lorsque c'est possible.

Surement pas ! errcatch() est actuellement sans équivalent. Cette fonction est environnementale, à portée globale ; alors que try.. ou execstr(..) ne peuvent être définis que localement.
Scilab est de plus en plus faible en matière de débogage. Si on veut l'achever, retirons errcatch()

Au lieu d'envisager de la supprimer, elle pourrait au contraire être étendue.
Par exemple, une valeur "whereami" de l'action à exécuter en cas d'erreur interceptée pourrait être implémentée. Cette valeur exécuterait whereami();pause, au lieu du whereami();abort exécuté par défaut.
Reply to this comment
Please login to comment this page


Add a comment:
Please login to comment this page.

<< debug Scilab errclear >>

Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Wed Oct 05 12:10:29 CEST 2011