PRODUCTS
Products Overview
Mathematica
Mathematica for Students
Mathematica Home Edition
Wolfram
CDF Player
(free download)
Computable Document Format (CDF)
web
Mathematica
grid
Mathematica
Wolfram
Workbench
Mathematica
Add-Ons
Wolfram|Alpha Products
SOLUTIONS
Solutions Overview
Engineering
Aerospace Engineering & Defense
Chemical Engineering
Control Systems
Electrical Engineering
Image Processing
Industrial Engineering
Materials Science
Mechanical Engineering
Operations Research
Optics
Petroleum Engineering
Biotechnology & Medicine
Bioinformatics
Medical Imaging
Finance, Statistics & Business Analysis
Actuarial Sciences
Data Analysis & Mining
Econometrics
Economics
Financial Engineering & Mathematics
Financial Risk Management
Statistics
Software Engineering & Content Delivery
Authoring & Publishing
Interface Development
Software Engineering
Web Development
Science
Astronomy
Biological Sciences
Chemistry
Environmental Sciences
Geosciences
Social & Behavioral Sciences
Design, Arts & Entertainment
Game Design, Special Effects & Generative Art
Education
STEM Education Initiative
Higher Education
Community & Technical College Education
Primary & Secondary Education
Students
Technology
Computable Document Format (CDF)
High-Performance & Parallel Computing (HPC)
See Also: Technology Guide
PURCHASE
Online Store
Other Ways to Buy
Volume & Site Licensing
Contact Sales
Software
Service
Upgrades
Training
Books
SUPPORT
Support Overview
Knowledge Base
Learning Center
Community & Forums
Training & Free Seminars
Does My Site Have a License?
Wolfram User Portal
COMPANY
About Wolfram Research
News & Events
Wolfram Blog
Partnerships
Employment Opportunities
History of
Mathematica
Stephen Wolfram's Home Page
Contact Us
OUR SITES
All Sites
Wolfram|Alpha
Demonstrations Project
MathWorld
Integrator
Wolfram Functions Site
Mathematica Journal
Wolfram Media
Wolfram
Tones
Wolfram Science
Stephen Wolfram
DOCUMENTATION CENTER SEARCH
New to
Mathematica
?
Find your learning path
»
Mathematica
>
Core Language
>
Procedural Programming
>
Flow Control
>
Throw
>
BUILT-IN MATHEMATICA SYMBOL
Loops and Control Structures
Messages
Tutorials »
|
Catch
Return
Goto
Interrupt
Abort
Sow
NestWhile
For
While
See Also »
|
Flow Control
Looping Constructs
Procedural Programming
Scoping Constructs
More About »
Throw
Throw
[
value
]
stops evaluation and returns
value
as the value of the nearest enclosing
Catch
.
Throw
is caught only by
Catch
where
form
is a pattern that matches
tag
.
MORE INFORMATION
You can use
Throw
and
Catch
to exit functions such as
Nest
,
Fold
,
FixedPoint
, and
Scan
.
tag
can be any expression.
tag
in
Throw
is re-evaluated every time it is compared to
form
in
Catch
.
An error is generated and an unevaluated
Throw
is returned if there is no appropriate enclosing
Catch
to catch the
Throw
.
EXAMPLES
CLOSE ALL
Basic Examples
(3)
Exit to the enclosing
Catch
as soon as
Throw
is evaluated:
Define a function that can "throw an exception":
The result of
Catch
is just what is thrown by
Throw
:
Use
Throw
to exit a loop when a criterion is satisfied:
Exit to the enclosing
Catch
as soon as
Throw
is evaluated:
In[1]:=
Out[1]=
Define a function that can "throw an exception":
In[1]:=
The result of
Catch
is just what is thrown by
Throw
:
In[2]:=
Out[2]=
In[3]:=
Out[3]=
Use
Throw
to exit a loop when a criterion is satisfied:
In[1]:=
Out[1]=
Scope
(4)
Throw
works inside essentially any function:
Use
Throw
to throw any type of expression:
Throw
is caught by the nearest enclosing
Catch
:
As soon as the first
Throw
is evaluated, it exits to the enclosing
Catch
:
Generalizations & Extensions
(3)
Catch
Throw
with tag
:
The inner
Catch
catches
Throw
:
The outer
Catch
catches
Throw
:
Keep the tag local:
Applications
(3)
Find the next prime after
:
Find the first power of 17 equal to 1 mod 19:
Stop if an iteration gets too large:
Properties & Relations
(1)
Use
Check
to throw an exception if a message is generated:
Possible Issues
(2)
Throw
requires
Catch
:
Using
Throw
can affect the structure of what is returned by a function:
SEE ALSO
Catch
Return
Goto
Interrupt
Abort
Sow
NestWhile
For
While
TUTORIALS
Loops and Control Structures
Messages
MORE ABOUT
Flow Control
Looping Constructs
Procedural Programming
Scoping Constructs
RELATED LINKS
NKS|Online
(
A New Kind of Science
)
New in 1 | Last modified in 3