They should throw codes most of the time,but they might not if the sensor is on the very edge of passing/failing.Example:you could have a o2 sensor that's operating,but operating slowly so it wont set a code.This is called a lazy sensor.The link below will help you test the o2 sensors.
Have you checked the spark plug wires??Let the engine idle,individually disconnect each plug wire & listen for the idle to change.If it doesn't run any different with the plug wire disconnected,that plug wire is bad,that plug wires contact on the distributer cap is bad or that injector might not be firing.A compression test can locate a suspect cylinder if its reading is much lower than the remaining cylinders.
A vacuum leak can cause misfires,but it also causes the o2 sensor(s)to read lean normally,but if the leak is really small it might not cause a lean o2 signal.
I would also check the egr valve to make sure its not sticking open.It should only be open during part throttle (cruise)conditions. When the egr valve is open,the ecm leans the fuel mixture & advances timing,which is just the opposite of what the engine needs at startup & during warmup.The ecm will delete egr function in the logic,if you remove the vacuum hose from the valve.That means,fuel & timing settings will go back to normal,so do this.Remove the vacuum hose from the egr valve, plug the hose then take the car for a test drive.If the misfiring & rough running conditions go away,the egr valve is dirty & stuck open,egr valve is defective or the evr solenoid on the strut tower is defective.
If the misfiring & rough running condition occurs on a constant basis instead of being a intermittent type issue,you might wanna check the fuel pressure to rule the fuel system out as a possible cause.Fuel pressure should be 35-45psi koeo & 30-40psi koer.Check for bleeddown pressure too.Turn the koeo & take a pressure reading,turn the key off,wait 60 seconds then take another reading. Pressure should not drop more than 5psi,from the koeo reading,in that 60 second time period.If it does,an injector is leaking,the fuel pump check valve is bad or the fuel pressure regulator is leaking/stuck open.To test the regulator, let the engine idle,pull the vacuum hose off the regulator.Do you see/smell fuel inside of the vacuum hose or do you see fuel seeping from the regulator vacuum port??If the answer is yes,the regulator is bad.Its also important to check this hose for a vacuum leak too.If the regulator is leaking fuel past the diaphram or its sticking open & sending fuel back out the return line to the tank,adequate fuel pressure won't be maintained & that will cause misfiring & sputtering.Another thing that happens with a leaking fpr is,fuel(from the leaking diaphram) gets drawn in through the vacuum hose and makes its way into the intake,then makes its way into the exhaust triggering the o2 sensors to read rich.If the o2's read rich,the ecm will then reduce the fuel mixture in an attempt to get the Afr back to normal,but it reduced the fuel mixture falsely because it really wasn't rich to begin with,the leaking fpr just made it appear that way to the o2's & ecm.The o2 sensors read oxygen not fuel,so if there's too much oxygen(due to a vacuum leak) in the exhaust,the o2's will read lean & if there's too little oxygen(due to a leaking fpr) in the exhaust,the o2's will read rich.
(O2 Sensor Testing Link)
O2 Sensor Codes 41/42/91/92 Troubleshooting
(ECT Testing Link)
ECT Codes 21/51/61 Troubleshooting