Do not know how to fix Exception 4 error

I want to use wifi module esp8266 to get temperature reading from thermal sensor on the Blynk app on my phone. Below is my code:

/*************************************************************

This is a simple demo of sending and receiving some data.
Be sure to check out other examples!
*************************************************************/

#define BLYNK_TEMPLATE_ID "TMPL36H7YvY4F"
#define BLYNK_TEMPLATE_NAME "Test"
#define BLYNK_AUTH_TOKEN "xS6gNoCI_fngvgxH9vXGAoPKq_W-l6BF"

/* Comment this out to disable prints and save space */
#define BLYNK_PRINT Serial


#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>

// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "iPhone";
char pass[] = "abcdabcd";

BlynkTimer timer;

// This function is called every time the Virtual Pin 0 state changes
BLYNK_WRITE(V0)
{
  // Set incoming value from pin V0 to a variable
  int value = param.asInt();

  // Update state
  Blynk.virtualWrite(V1, value);
}

// This function sends Arduino's uptime every second to Virtual Pin 2.
void myTimerEvent()
{
  // You can send any value at any time.
  // Please don't send more that 10 values per second.
  Blynk.virtualWrite(V2, millis() / 1000);
}

void setup()
{
  // Debug console
  Serial.begin(9600);

  Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
  // You can also specify server:
  //Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass, "blynk.cloud", 80);
  //Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass, IPAddress(192,168,1,100), 8080);

  // Setup a function to be called every second
  timer.setInterval(10000L, myTimerEvent);
}

void loop()
{
  Blynk.run();
  timer.run();
  // You can inject your own code or combine it with other sketches.
  // Check other examples on how to communicate with Blynk. Remember
  // to avoid delay() function!
}

I am getting the following error on running this:

Exception (4):
epc1=0x4000dd07 epc2=0x00000000 epc3=0x00000000 excvaddr=0x00000000 depc=0x00000000

>>>stack>>>

ctx: cont
sp: 3ffffdc0 end: 3fffffd0 offset: 0160
3fffff20:  00000000 00002c0d 00c49ba5 0032ef08  
3fffff30:  00000000 00ac12d7 0000464f 00001f60  
3fffff40:  00002c0d 00002c0d 00000000 00001f60  
3fffff50:  0000464f 00000000 00000000 4020545e  
3fffff60:  00000000 00000000 3ffeeef0 40201290  
3fffff70:  00000000 000000bb 3ffeef98 00001f60  
3fffff80:  0000464f 3ffeeef0 00000000 402021ac  
3fffff90:  40208294 7e57240a feefeffe feefeffe  
3fffffa0:  feefeffe feefeffe feefeffe 3ffef120  
3fffffb0:  3fffdad0 00000000 3ffef0f4 40204c54  
3fffffc0:  feefeffe feefeffe 3fffdab0 40100e75  
<<<stack<<<

In addition, on the web version of Blynk, it is displaying that the device is offline.

How to fix these problems?

Exactly what hardware are you using?
Do you have anything connected to your ESP8266 other than the serial cable?

Pete.

ESP8266, Node MCU 12-E. I have connected the ESP8266 via a microusb cable to my laptop and connected a thermal sensor to it

Exactly which thermal sensor are you using, and exactly how have you connected it to your NodeMCU?

What happens if you remove the thermal sensor from the NodeMCU and try again?

You don’t currently have any code within your sketch to read the values from your thermal sensor and send them to Blynk, so having the sensor connected at this stage doesn’t achieve anything.

Pete.