SlideShare ist ein Scribd-Unternehmen logo
1 von 13
 Errors in Lisp
overview General error-signaling functions Specialized error signaling Forms and Macros Special Forms for exhaustive Case Analysis
List functions may signal an error when given incorrect arguments. Each implementation of common lisp will provide an interactive debugger that prints the error message along with suitable contextual information such as which function detected the error. Conditions subsume and generalize the notation of errors. The conditions system also provides means for handling conditions and for restarting a computation after a condition has been signaled.
General error-signaling functions These functions provide mechanisms for warnings, breaks, continuable errors, and fatal errors. The caller specifies an error message( a string) that may be processed by the error handling mechanism. Error message should not contain a new-line character either at the beginning or at the end.
 error format-string &rest args The function signals a fatal error. It is impossible to continue from this kind of error.  ,[object Object],Warn prints an error message but normally doesn’t go into the debugger. ‘ This may be controlled by the variable break *break-on-warnings* If the variable *break-on-warnings* is not null, then the function warn behaves like break.
 cerror continue-format-string error-format-string &rest args Cerror is used to signal continuable errors, it allows the program to be continued from debugger after resolving the error.  break &optional format-string &rest args Break prints the message and goes directly into the debugger, without allowing any possibility of interception by programmed error-handling facilities.
Specialized error signaling Forms and Macros These facilitate the user to insert error checks into the code. Check-type place typespec [string] Check-type signals an error if the contents of place are not of the desired type. The user will be asked for a new value, the check-type will store the new value in place and start over. The place must be a generalized variable reference acceptable to setf. Typespec must be a type specifier. (it is not evaluated.) String must be an English description of the type, starting with an indefinite article ( “a” or “an”). (it is evaluated.)
assert test-form [({place}* ) [string {arg}*]] assert signals an error if the value of the test-form is nil. Continuing from this error allows the user to alter the values of some variables , and assert will start over, evaluating the test form again. assert returns nil.
Special Forms for exhaustive Case Analysis etypecase and ecase are similar to typecase and case, but signal a continuable error if no clause is selected. Ctypecase and ccase are similar to typecase and case, but signal a continuable error if no clause is selected. ,[object Object],This control construct is similar to typecase, but no explicit otherwise or t clause is permitted.
To supply an application-specific error, the user must use typecase with an otherwise clause containing a call to error.  Ctypecase keyplace { (type {form}* )}* The keyplace must be a generalized  variable reference acceptable to setf. If n o clause is satisfied, ctypecase signals an error with a message constructed from the clauses.
[object Object],If no clause is satisfied, ecase signals an error with a message constructed from the clauses. It is not permissible to continue from this error. To supply an error message, the user must use case with an otherwise clause containing a call to error.
[object Object],The keyplace must be a generalized vale reference acceptable to setf. Continuing from this error causes ccase to accept a new value from the user, store it into keyplace, and start over, making the clause tests again. Subforms of keyplace may be evaluated multiple times.
Visit more self help tutorials Pick a tutorial of your choice and browse through it at your own pace. The tutorials section is free, self-guiding and will not involve any additional support. Visit us at www.dataminingtools.net

Weitere ähnliche Inhalte

Was ist angesagt?

Control structures
Control structuresControl structures
Control structures
Gehad Enayat
 
Control structures in Java
Control structures in JavaControl structures in Java
Control structures in Java
Ravi_Kant_Sahu
 

Was ist angesagt? (17)

Switch Case in C Programming
Switch Case in C ProgrammingSwitch Case in C Programming
Switch Case in C Programming
 
If-else and switch-case
If-else and switch-caseIf-else and switch-case
If-else and switch-case
 
Timedobserver
TimedobserverTimedobserver
Timedobserver
 
10. switch case
10. switch case10. switch case
10. switch case
 
Ppt lesson 06
Ppt lesson 06Ppt lesson 06
Ppt lesson 06
 
JetBrains MPS: Editor Aspect
JetBrains MPS: Editor AspectJetBrains MPS: Editor Aspect
JetBrains MPS: Editor Aspect
 
Software Engineering - Module 3: Lesson7
Software Engineering - Module 3: Lesson7Software Engineering - Module 3: Lesson7
Software Engineering - Module 3: Lesson7
 
OOPS With CSharp - Jinal Desai .NET
OOPS With CSharp - Jinal Desai .NETOOPS With CSharp - Jinal Desai .NET
OOPS With CSharp - Jinal Desai .NET
 
C# conditional branching statement
C# conditional branching statementC# conditional branching statement
C# conditional branching statement
 
C rules
C rulesC rules
C rules
 
itft-Decision making and branching in java
itft-Decision making and branching in javaitft-Decision making and branching in java
itft-Decision making and branching in java
 
Chapter 2 : Programming with Java Statements
Chapter 2 : Programming with Java StatementsChapter 2 : Programming with Java Statements
Chapter 2 : Programming with Java Statements
 
Control structures
Control structuresControl structures
Control structures
 
Programming style guideline very good
Programming style guideline very goodProgramming style guideline very good
Programming style guideline very good
 
Selection statements
Selection statementsSelection statements
Selection statements
 
Control structures in Java
Control structures in JavaControl structures in Java
Control structures in Java
 
Java Decision Control
Java Decision ControlJava Decision Control
Java Decision Control
 

Ähnlich wie LISP: Errors In Lisp

Java căn bản - Chapter8
Java căn bản - Chapter8Java căn bản - Chapter8
Java căn bản - Chapter8
Vince Vo
 
C++ PROGRAMMING BASICS
C++ PROGRAMMING BASICSC++ PROGRAMMING BASICS
C++ PROGRAMMING BASICS
Aami Kakakhel
 
Effective Java Second Edition
Effective Java Second EditionEffective Java Second Edition
Effective Java Second Edition
losalamos
 

Ähnlich wie LISP: Errors In Lisp (20)

Annotations in Java with Example.pdf
Annotations in Java with Example.pdfAnnotations in Java with Example.pdf
Annotations in Java with Example.pdf
 
Java 7 new features
Java 7 new featuresJava 7 new features
Java 7 new features
 
Cordova training : Day 3 - Introduction to Javascript
Cordova training : Day 3 - Introduction to JavascriptCordova training : Day 3 - Introduction to Javascript
Cordova training : Day 3 - Introduction to Javascript
 
C language UPTU Unit3 Slides
C language UPTU Unit3 SlidesC language UPTU Unit3 Slides
C language UPTU Unit3 Slides
 
C# language basics (Visual Studio)
C# language basics (Visual Studio) C# language basics (Visual Studio)
C# language basics (Visual Studio)
 
C# language basics (Visual studio)
C# language basics (Visual studio)C# language basics (Visual studio)
C# language basics (Visual studio)
 
java notes.pdf
java notes.pdfjava notes.pdf
java notes.pdf
 
Java input Scanner
Java input Scanner Java input Scanner
Java input Scanner
 
Introduction to C#
Introduction to C#Introduction to C#
Introduction to C#
 
Intake 38 2
Intake 38 2Intake 38 2
Intake 38 2
 
Co&al lecture-07
Co&al lecture-07Co&al lecture-07
Co&al lecture-07
 
Java căn bản - Chapter8
Java căn bản - Chapter8Java căn bản - Chapter8
Java căn bản - Chapter8
 
Chapter 8 - Exceptions and Assertions Edit summary
Chapter 8 - Exceptions and Assertions  Edit summaryChapter 8 - Exceptions and Assertions  Edit summary
Chapter 8 - Exceptions and Assertions Edit summary
 
Bt0067 c programming and data structures 1
Bt0067 c programming and data structures 1Bt0067 c programming and data structures 1
Bt0067 c programming and data structures 1
 
Cprogrammingprogramcontrols
CprogrammingprogramcontrolsCprogrammingprogramcontrols
Cprogrammingprogramcontrols
 
C++ PROGRAMMING BASICS
C++ PROGRAMMING BASICSC++ PROGRAMMING BASICS
C++ PROGRAMMING BASICS
 
Ast transformation
Ast transformationAst transformation
Ast transformation
 
Final requirement
Final requirementFinal requirement
Final requirement
 
Programming in Arduino (Part 2)
Programming in Arduino  (Part 2)Programming in Arduino  (Part 2)
Programming in Arduino (Part 2)
 
Effective Java Second Edition
Effective Java Second EditionEffective Java Second Edition
Effective Java Second Edition
 

Mehr von LISP Content (13)

LISP: Control Structures In Lisp
LISP: Control Structures In LispLISP: Control Structures In Lisp
LISP: Control Structures In Lisp
 
LISP:Declarations In Lisp
LISP:Declarations In LispLISP:Declarations In Lisp
LISP:Declarations In Lisp
 
LISP: Input And Output
LISP: Input And OutputLISP: Input And Output
LISP: Input And Output
 
LISP: Object Sytstem Lisp
LISP: Object Sytstem LispLISP: Object Sytstem Lisp
LISP: Object Sytstem Lisp
 
LISP: Loops In Lisp
LISP: Loops In LispLISP: Loops In Lisp
LISP: Loops In Lisp
 
LISP: Type specifiers in lisp
LISP: Type specifiers in lispLISP: Type specifiers in lisp
LISP: Type specifiers in lisp
 
LISP: Symbols and packages in lisp
LISP: Symbols and packages in lispLISP: Symbols and packages in lisp
LISP: Symbols and packages in lisp
 
LISP: Scope and extent in lisp
LISP: Scope and extent in lispLISP: Scope and extent in lisp
LISP: Scope and extent in lisp
 
LISP: Program structure in lisp
LISP: Program structure in lispLISP: Program structure in lisp
LISP: Program structure in lisp
 
LISP: Predicates in lisp
LISP: Predicates in lispLISP: Predicates in lisp
LISP: Predicates in lisp
 
LISP: Macros in lisp
LISP: Macros in lispLISP: Macros in lisp
LISP: Macros in lisp
 
LISP: Data types in lisp
LISP: Data types in lispLISP: Data types in lisp
LISP: Data types in lisp
 
LISP: Introduction To Lisp
LISP: Introduction To LispLISP: Introduction To Lisp
LISP: Introduction To Lisp
 

Kürzlich hochgeladen

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Kürzlich hochgeladen (20)

Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 

LISP: Errors In Lisp

  • 2. overview General error-signaling functions Specialized error signaling Forms and Macros Special Forms for exhaustive Case Analysis
  • 3. List functions may signal an error when given incorrect arguments. Each implementation of common lisp will provide an interactive debugger that prints the error message along with suitable contextual information such as which function detected the error. Conditions subsume and generalize the notation of errors. The conditions system also provides means for handling conditions and for restarting a computation after a condition has been signaled.
  • 4. General error-signaling functions These functions provide mechanisms for warnings, breaks, continuable errors, and fatal errors. The caller specifies an error message( a string) that may be processed by the error handling mechanism. Error message should not contain a new-line character either at the beginning or at the end.
  • 5.
  • 6.  cerror continue-format-string error-format-string &rest args Cerror is used to signal continuable errors, it allows the program to be continued from debugger after resolving the error. break &optional format-string &rest args Break prints the message and goes directly into the debugger, without allowing any possibility of interception by programmed error-handling facilities.
  • 7. Specialized error signaling Forms and Macros These facilitate the user to insert error checks into the code. Check-type place typespec [string] Check-type signals an error if the contents of place are not of the desired type. The user will be asked for a new value, the check-type will store the new value in place and start over. The place must be a generalized variable reference acceptable to setf. Typespec must be a type specifier. (it is not evaluated.) String must be an English description of the type, starting with an indefinite article ( “a” or “an”). (it is evaluated.)
  • 8. assert test-form [({place}* ) [string {arg}*]] assert signals an error if the value of the test-form is nil. Continuing from this error allows the user to alter the values of some variables , and assert will start over, evaluating the test form again. assert returns nil.
  • 9.
  • 10. To supply an application-specific error, the user must use typecase with an otherwise clause containing a call to error.  Ctypecase keyplace { (type {form}* )}* The keyplace must be a generalized variable reference acceptable to setf. If n o clause is satisfied, ctypecase signals an error with a message constructed from the clauses.
  • 11.
  • 12.
  • 13. Visit more self help tutorials Pick a tutorial of your choice and browse through it at your own pace. The tutorials section is free, self-guiding and will not involve any additional support. Visit us at www.dataminingtools.net