Report a bug
If you spot a problem with this page, click here to create a Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page.
Requires a signed-in GitHub account. This works well for small changes.
If you'd like to make larger changes you may want to consider using
a local clone.
dmd.blockexit
Find out in what ways control flow can exit a statement block.
Authors:
License:
Source blockexit.d
Documentation https://dlang.org/phobos/dmd_blockexit.html
- enum
BE
: int; - BE stands for BlockExit.It indicates if a statement does transfer control to another block. A block is a sequence of statements enclosed in { }
- int
blockExit
(Statements
, FuncDeclarationfunc
, ErrorSinkeSink
); - Determine mask of ways that a statement can exit.Only valid after semantic analysis.Parameters:
Statement s
statement to check for block exit status FuncDeclaration func
function that statement s is in ErrorSink eSink
generate an error if it throws Returns:BE.xxxx - BE
checkThrow
(const ref Locloc
, Expressionexp
, FuncDeclarationfunc
, ErrorSinkeSink
); - Checks whether throw <
exp
> throws an Exception or an Error and raises an error if this violates nothrow.Parameters:Loc loc
location of the throw Expression exp
expression yielding the throwable ErrorSink eSink
if !null then inside of a nothrow scope FuncDeclaration func
function containing the throw Returns:BE.[err]throw depending on the type ofexp
Copyright © 1999-2024 by the D Language Foundation | Page generated by
Ddoc on Sun Nov 17 01:06:29 2024