0Pricing
Mojo Academy · Leçon

L’annotation raises

Marquez les fonctions susceptibles d’échouer.

L’annotation raises est une leçon Mojo Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Mojo Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Mojo Academy comprend 4 leçons au total.

Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.

Honest About Failure

Mojo wants functions to be honest about whether they can fail. The raises keyword marks a function that might raise an error. 📣

Adding raises

Put raises right after the argument list. It tells callers this function may not always succeed.

fn parse(text: String) raises -> Int:
    ...

def Can Always Raise

A flexible def function may raise without any annotation. Mojo treats def as able to fail by default.

def load(name: String):
    raise Error("missing")

fn Must Declare It

A strict fn function cannot raise unless you add raises. This makes failure explicit and easy to spot.

fn safe(x: Int) -> Int:
    return x + 1

Calling a raising Function

Calling something marked raises means you must handle the error, usually inside a try block.

try:
    var n = parse("42")
except e:
    print(e)

Errors Bubble Through raises

If a raising function is called inside another raises function, the error simply propagates up without a try.

Non-raising Means Safe

A function without raises promises it will not raise. Callers can use it freely without try blocks.

The Compiler Checks You

Mojo's compiler rejects a raise inside a non-raising fn. This catches mismatches before your program ever runs.

Self-Documenting Code

The raises keyword acts as living documentation. One glance at the signature tells you if a call can fail.

Keep the Surface Small

Mark only the functions that truly can fail with raises. Fewer raising functions means simpler, safer call sites.

raises and Return Types

You combine raises with a normal return type. The function returns a value on success or raises on failure.

fn divide(a: Int, b: Int) raises -> Int:
    if b == 0:
        raise Error("divide by zero")
    return a // b

Quick Check

Think about how fn and the raises keyword work together.

Recap

You learned that raises declares a function may fail, that def can always raise while fn must opt in, and the compiler enforces it. 🎯

Questions Fréquemment Posées

La leçon « L’annotation raises » est-elle gratuite ?

Oui — le texte complet de « L’annotation raises » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Mojo Academy, passe à CoddyKit PRO. Le cours Mojo Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « L’annotation raises » ?

Marquez les fonctions susceptibles d’échouer. Tu pratiques Mojo Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Mojo Academy ?

Aucune expérience préalable n'est requise. Mojo Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.

Combien de temps prend la leçon « L’annotation raises » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Mojo Academy ?

Oui. Chaque leçon Mojo Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Lever une erreur
  2. Intercepter avec try/except
  3. L’annotation raises
  4. Nettoyer avec finally
← Retour à Mojo Academy