# Built-in Functions

**Built-in** Functions are described as "[the ones that work without #including anything](https://github.com/JMDash-Devs/JMDash/blob/main/.gitignore/Initial%20design%20for%20JM-%20\(or%20JMDash\).txt#L9)"

So they don't need you to `#incd` anything.

## Input/Output Functions

{% code lineNumbers="true" %}

```c
// con.out{} Stands for 'Console.Output'
// Used to output text and/or variables into the console.
// Syntax (spaced): con.out{ << <dataToOutput> };
con.out{<< "Hello World!"}; // Output: Hello World!

// It can also be used for mathematical operations
con.out{<< 1 + 1}; // Output: 2
```

{% endcode %}

{% code lineNumbers="true" %}

```c
// con.read{} Stands for 'Console.Read'
// Used to read user's input and store it into a variable
// Syntax (spaced): con.read{ >> <variableName> };
con.out{<< "Did you eat the dog? "};
str exampleString;
con.read{>> exampleString};
```

{% endcode %}

## Error Handling Functions

{% code lineNumbers="true" %}

```c
// jtry{} Stands for 'JMDash Try'
// Used to check if a statement will return errors
// Syntax (spaced): jtry{ << <possiblyWrongCodeHere> };
jtry{<<
    str myString = MyText; // Code that will trigger errors (missing quotes)
};

// jcatch{} Stands for 'JMDash Catch'
// Used to catch errors that have been "tried" by jtry{}
// Find the error location in the Error Tree (on JMDash Docs)
// Syntax (spaced): jcatch{<errorLocation> >> <possiblyWrongCodeHere>};
jcatch{ SyntaxError/WrongSyntaxOnDataType/WrongSyntaxOnString };

// jcatch{} can also "try" errors itself;
jcatch{ SyntaxError/WrongSyntaxOnDataType/WrongSyntaxOnString >> 
    str myString = MyText; // Code that will trigger errors (missing quotes)
};
```

{% endcode %}

{% code lineNumbers="true" %}

```c
// jthrow{} Stands for 'JMDash Throw'
// Used to throw errors, real simple :))
// Find the error location in the Error Tree (on JMDash Docs)
// Syntax (spaced): jthrow{ >> <errorLocation> };
jthrow{>> SyntaxError/WrongSyntaxOnDataType/WrongSyntaxOnString};
```

{% endcode %}
